ProjectDefinition.st
author Stefan Vogel <sv@exept.de>
Thu, 21 Jun 2018 14:51:38 +0200
changeset 23123 a120d0418bd7
parent 23112 fdda70eb1871
child 23124 d02eecc4b7b1
permissions -rw-r--r--
#QUALITY by stefan class: ProjectDefinition class removed: #forEachFileNameAndGeneratorMethodDo: changed: #forEachFileNameAndGeneratedContentsDo: #generateFile: Show warning if deoendencies are missing.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
22688
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
     1
"{ Encoding: utf8 }"
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
     2
9553
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
     3
"
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
     4
 COPYRIGHT (c) 2006 by eXept Software AG
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
     5
              All Rights Reserved
9553
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
     6
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
     7
 This software is furnished under a license and may be used
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
     8
 only in accordance with the terms of that license and with the
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
     9
 inclusion of the above copyright notice.   This software may not
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    10
 be provided or otherwise made available to, or used by, any
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    11
 other person.  No title to or ownership of the software is
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    12
 hereby transferred.
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    13
"
9671
cb20763db715 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9667
diff changeset
    14
"{ Package: 'stx:libbasic' }"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
    15
17289
9df64c66192f class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17253
diff changeset
    16
"{ NameSpace: Smalltalk }"
9df64c66192f class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17253
diff changeset
    17
9569
b0bf179c9bf5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9559
diff changeset
    18
Object subclass:#ProjectDefinition
17289
9df64c66192f class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17253
diff changeset
    19
	instanceVariableNames:''
20546
92618d700b74 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20527
diff changeset
    20
	classVariableNames:'AbbrevDictionary AccessLock FolderForSubApplicationsType
92618d700b74 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20527
diff changeset
    21
		GUIApplicationType LibraryType NonGUIApplicationType
92618d700b74 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20527
diff changeset
    22
		PackagesBeingLoaded Verbose'
17289
9df64c66192f class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17253
diff changeset
    23
	poolDictionaries:''
9df64c66192f class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17253
diff changeset
    24
	category:'System-Support-Projects'
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
    25
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
    26
14580
b9514d8a5211 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14577
diff changeset
    27
ProjectDefinition class instanceVariableNames:'safeForOverwrittenMethods extensionOverwriteInfo projectIsLoaded'
9607
3cae5cf71c03 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9601
diff changeset
    28
3cae5cf71c03 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9601
diff changeset
    29
"
3cae5cf71c03 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9601
diff changeset
    30
 No other class instance variables are inherited by this class.
3cae5cf71c03 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9601
diff changeset
    31
"
3cae5cf71c03 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9601
diff changeset
    32
!
3cae5cf71c03 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9601
diff changeset
    33
13592
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
    34
Object subclass:#AbbrevEntry
17289
9df64c66192f class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17253
diff changeset
    35
	instanceVariableNames:'className fileName category numClassInstVars'
9df64c66192f class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17253
diff changeset
    36
	classVariableNames:''
9df64c66192f class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17253
diff changeset
    37
	poolDictionaries:''
9df64c66192f class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17253
diff changeset
    38
	privateIn:ProjectDefinition
13592
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
    39
!
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
    40
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
    41
Object subclass:#ApplicationDocumentTypeDescription
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
    42
	instanceVariableNames:'extension iconFileOSX mimeType typeName iconFileWindows
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
    43
		iconFileLinux roleOSX'
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
    44
	classVariableNames:''
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
    45
	poolDictionaries:''
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
    46
	privateIn:ProjectDefinition
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
    47
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
    48
9569
b0bf179c9bf5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9559
diff changeset
    49
!ProjectDefinition class methodsFor:'documentation'!
9553
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    50
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    51
buildingMakefiles
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    52
"
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    53
    You can define additional rules and flag settings for use in the makeFile generation:
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    54
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    55
    redefinable build-file attributes:
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
    56
        stcOptimizationOptions  -> STCLOCALOPT
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
    57
        stcWarningOptions       -> STCLOCALOPT
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
    58
        localIncludes_unix      -> LOCALINCLUDES (Make.proto)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
    59
        localIncludes_win32     -> LOCALINCLUDES (bc.mak)
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
    60
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
    61
    for applications:
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
    62
        startupClassName
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
    63
        startupSelector
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
    64
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
    65
    for libraries:
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    66
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    67
"
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    68
!
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    69
9553
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    70
copyright
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    71
"
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    72
 COPYRIGHT (c) 2006 by eXept Software AG
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
    73
              All Rights Reserved
9553
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    74
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    75
 This software is furnished under a license and may be used
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    76
 only in accordance with the terms of that license and with the
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    77
 inclusion of the above copyright notice.   This software may not
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    78
 be provided or otherwise made available to, or used by, any
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    79
 other person.  No title to or ownership of the software is
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    80
 hereby transferred.
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    81
"
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
    82
!
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
    83
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
    84
documentation
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
    85
"
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    86
    As ST/X is (still) very tightly bound with stc, we keep the package and project information
17025
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
    87
    in a class-object (instead of some project object) and all queries about package contents and 
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
    88
    attributes are implemented as class methods. 
21562
1218cac5c5c5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21509
diff changeset
    89
    (after all: a class is an object, which can be asked by sending it messages...
1218cac5c5c5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21509
diff changeset
    90
     ... so why would one want extra meta-descriptions with extra syntax?)
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
    This has the advantage, that it can be compiled and included in a compiled class library just like any other class.
21562
1218cac5c5c5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21509
diff changeset
    93
17025
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
    94
    Every package includes a subclass of me (an instance of my meta), which provides useful
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
    95
    information about the versioning and packaging. 
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
    96
    Me myself, I know how to generate dependency information and can generate makefiles and other build-support 
17303
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
    97
    files for compilation (see the browser's 'Checkin Build Support File' menu item. For more details, see
21562
1218cac5c5c5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21509
diff changeset
    98
    section 'Build Support Files' below).
17025
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
    99
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
   100
    When a package is loaded from a binary shared class lib (i.e. a compiled class library is loaded
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
   101
    via 'Smalltalk loadPackage:'), the loading is done in multiple phases:
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
   102
        1) the shared object is loaded, but not installed (registered) in Smalltalk
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
   103
        2) the ProjectDefinition class is registered and initialized.
21562
1218cac5c5c5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21509
diff changeset
   104
        3) the ProjectDefinition class is asked to load its prerequisites. 
1218cac5c5c5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21509
diff changeset
   105
           This may recursively lead to other packages to be loaded 
1218cac5c5c5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21509
diff changeset
   106
           - either as binary class libraries, as bytecode or from source; whichever is found.
1218cac5c5c5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21509
diff changeset
   107
        4) the remaining classes and extensions of the package are registered
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
   108
17366
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   109
    ## Some special notes about extension methods:
17025
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
   110
      if a package is loaded (Smalltalk loadPackage:'foo:bar/baz'), any already loaded package of which
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
   111
      methods are overwritten by an extension method of the loaded package, the other package is asked to safe those
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
   112
      methods in its safe(ForOverwrittenMethods). 
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
   113
      Thus, if the other package or any of its classes is asked
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
   114
      to file itself out, it can do so using the safe (otherwise, you'd not be able to check the original class into
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
   115
      its repository while it has an overriding extension loaded).
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
   116
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
   117
      Also, the information about which other package was in charge when a method is overwritten is recorded in
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
   118
      extensionOverwriteInfo. 
21562
1218cac5c5c5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21509
diff changeset
   119
      This is used to correctly reinstall any overwritten method, whenever a package is unloaded.
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
   120
17303
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
   121
    ## Build Support Files
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
   122
21562
1218cac5c5c5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21509
diff changeset
   123
    To support compilation of a package, ProjectDefinition can generate a set of makefiles and other
17303
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
   124
    support files to allow that. To see the set of files that should be generated, see #fileNamesToGenerate.
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
   125
    These files are usually generated and saved to the repository upon a commit - the source code management
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
   126
    does (should) care for this.
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
   127
21562
1218cac5c5c5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21509
diff changeset
   128
    Packages may add more files to this list by defining an (extension) method in project definition class
17303
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
   129
    and by annotating the method by <file:overwrite:> annotation:
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
   130
17366
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   131
        * the first parameter is the file name to generate as String, relative to the package root. As directory
17303
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
   132
          separator, use slash (as on UNIX), it will be automagically converted to platform's separator.
21562
1218cac5c5c5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21509
diff changeset
   133
        * The second parametrer (true or false) tells the SCM whether the file should be generated (and thus
17303
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
   134
          overwritten) upon each commit (when true) or only the first time (when false). Important: see the 
20778
635e9b02b17f #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20703
diff changeset
   135
          remark below.
17303
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
   136
        * The method itself should return file's contents a string. If it returns nil, then the file is *not*
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
   137
          generated at all.
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
   138
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
   139
    For examples, see #generate_java_build_auto_dot_xml and #generate_java_build_dot_xml defined by STX:LIBJAVA.
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
   140
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
   141
    REMARK: CAUTION:
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
   142
    The overwrite: boolean is currently *not* supported by old SCM managers, more specifically
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
   143
    CVSSourceCodeManager does not support it. CVSSourceCodeManager will always overwrite the file!!
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
   144
    It *is* supported by all SCMs based on new stx:libscm. More specifically, *it is supported* by
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
   145
    Mercurial.
17366
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   146
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   147
    ## Adding additional rules to generated makefiles
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   148
20986
3758c77e6af0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20985
diff changeset
   149
    There are two ways to add additional rules to generated makefiles (Make.proto and bc.mak):
17366
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   150
      1) overriding #additionalRules_make_dot_proto and/or #additionalRules_bc_dot_mak
20986
3758c77e6af0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20985
diff changeset
   151
      2) adding a method annotated by <file:target:> or <file:target:extends:> 
17366
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   152
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   153
    ### Overriding #additionalRules* methods
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   154
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   155
    You may override #additionalRules_make_dot_proto and/or #additionalRules_bc_dot_mak and return
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   156
    string containing the code of the rules. This string is inserted to the resulting makefile
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   157
    as-is. This is the traditional way of doing this.
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   158
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   159
    If you any of the targets defined there to be called as part of standard build, you may
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   160
    also want to list these targets in #additionalTargets_make_dot_proto and/or
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   161
    #additionalTargets_bc_dot_mak
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   162
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   163
    ### Adding annotatated method
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   164
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   165
    Alternatively, you may add one method per rule and annotate it by
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   166
    <file:target:> or <file:target:extends:> annotation. For example,
20624
36a96279296c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20605
diff changeset
   167
    to call 'ant' whenever a package is built, add a method like:
17366
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   168
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   169
    additionalRuleAnt_make_dot_proto
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   170
        <file: 'Make.proto' target: 'ant' extends: 'pre_objs' >  
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   171
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   172
        ^ '
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   173
        java:
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   174
                ant -f java/build.xml
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   175
        '
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   176
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   177
    The meaning annotation parameters is the following:
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   178
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   179
        * file: <String> - name of the file in which to include
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   180
          the rule. Currently only two values are valid:
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   181
          'Make.proto' and '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
   182
        * target: <String> - name of the target'
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   183
        * extends: <String> - optional name of the target that this additional
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   184
          rule extends. This means that the extending target (specified by target:
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   185
          annotation parameter) is called as part of building of  the extended target
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   186
          (i.e., the target specified by extends: annotation parameter). Not all targets
23112
fdda70eb1871 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 23051
diff changeset
   187
          are extendible, see below.
17366
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   188
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   189
    Method annotated by these annotations should return - when executed - a string
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   190
    with exactly one rule. The rule name SHOULD match with the name in target: annotation
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   191
    parameter, otherwise the extends: parameter will not work correctly.
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   192
    If the methor returns nil, the rule is not included in resulting makefile.
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   193
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   194
    The advantage of this approach is that it allows for additional, non-basic packages to hook in
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   195
    and add their own targets if they want to. The disadvantage is that if package makefiles
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   196
    are regenerated without this extending package loaded, targets are lost. To avid this,
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   197
    you may want to add this non-basic package to prerequsites.
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   198
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   199
    Currently, this mechanism is used by STX:LIBJAVA to call ant to compile package's java classes.
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   200
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   201
    #### Extendable targets
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   202
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   203
    Make.proto:
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
   204
        all
e15994335cb4 Allow to extend target clean in both Make.proto and bc.mak.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17366
diff changeset
   205
        clean
17366
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   206
        ...more to be added...
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   207
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   208
    bc.mak
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   209
        ALL
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
   210
        clean
17366
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   211
        ...more to be added...
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   212
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
   213
"
9553
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
   214
! !
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   215
9569
b0bf179c9bf5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9559
diff changeset
   216
!ProjectDefinition class methodsFor:'instance creation'!
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   217
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   218
definitionClassForPackage:aPackageID
17025
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
   219
    "given a packageID (such as 'stx:libfoo/bar'), lookup the corresponding peoject definition class.
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
   220
     Return it, or nil if not present"
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
   221
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   222
    ^ self definitionClassForPackage:aPackageID createIfAbsent:false
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   223
17025
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
   224
    "
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
   225
     ProjectDefinition definitionClassForPackage:'stx:libbasic'
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
   226
     ProjectDefinition definitionClassForPackage:'stx:libfoobarBaz'
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
   227
    "
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
   228
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   229
    "Modified: / 17-08-2006 / 14:33:35 / cg"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   230
!
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   231
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   232
definitionClassForPackage:aPackageID createIfAbsent:doCreateIfAbsent
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   233
    ^ self definitionClassForPackage:aPackageID createIfAbsent:doCreateIfAbsent projectType:nil
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   234
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   235
    "Modified: / 23-08-2006 / 14:29:15 / cg"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   236
!
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   237
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   238
definitionClassForPackage: aPackageID createIfAbsent: doCreateIfAbsent projectType:typeOrNil
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   239
    |packageDefinitionClassName class|
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   240
17344
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   241
    packageDefinitionClassName := self projectDefinitionClassNameForDefinitionOf:aPackageID.
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   242
    class := Smalltalk classNamed:packageDefinitionClassName.
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   243
    class isNil ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   244
        doCreateIfAbsent ifTrue:[
15070
697f39951cc4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15069
diff changeset
   245
            typeOrNil = GUIApplicationType ifTrue:[
697f39951cc4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15069
diff changeset
   246
                class := ApplicationDefinition newForPackage:aPackageID.
697f39951cc4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15069
diff changeset
   247
            ] ifFalse:[
697f39951cc4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15069
diff changeset
   248
                typeOrNil = NonGUIApplicationType ifTrue:[
697f39951cc4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15069
diff changeset
   249
                    class := ApplicationDefinition newForPackage:aPackageID.
697f39951cc4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15069
diff changeset
   250
                ] ifFalse:[
16682
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
   251
                    typeOrNil = FolderForSubApplicationsType ifTrue:[
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
   252
                        class := FolderForProjectsDefinition newForPackage:aPackageID.
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
   253
                    ] ifFalse:[
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
   254
                        class := LibraryDefinition newForPackage:aPackageID.
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
   255
                    ]
15070
697f39951cc4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15069
diff changeset
   256
                ]
697f39951cc4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15069
diff changeset
   257
            ].
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   258
            "setup before prerequisites are defined"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   259
            class setupForType:typeOrNil.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   260
            "/ look what is there and include it; is this ok ?
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   261
            class compileDescriptionMethods
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   262
        ].
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   263
    ] ifFalse:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   264
        typeOrNil notNil ifTrue:[
15371
7b8fc09e7490 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15367
diff changeset
   265
            doCreateIfAbsent ifTrue:[
7b8fc09e7490 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15367
diff changeset
   266
                class projectType == typeOrNil ifFalse: [
7b8fc09e7490 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15367
diff changeset
   267
                    class setupForType:typeOrNil.
7b8fc09e7490 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15367
diff changeset
   268
                ]
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   269
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   270
        ].
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   271
    ].
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   272
    ^ class
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   273
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   274
    "Created: / 23-08-2006 / 14:29:21 / cg"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   275
    "Modified: / 23-08-2006 / 15:35:26 / cg"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   276
!
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   277
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   278
definitionClassForPackage:newProjectID projectType:typeOrNil createIfAbsent:createIfAbsent
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   279
    ^ (self definitionClassForType:typeOrNil)
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   280
            definitionClassForPackage:newProjectID
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   281
            createIfAbsent:createIfAbsent
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   282
            projectType:typeOrNil
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   283
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   284
    "Created: / 23-08-2006 / 14:28:53 / cg"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   285
!
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   286
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   287
definitionClassForType: type
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   288
    "answer the class that describes a give project type"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   289
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   290
    (type = LibraryType) ifTrue:[ ^ LibraryDefinition ].
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   291
    (type = GUIApplicationType) ifTrue:[ ^ ApplicationDefinition ].
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   292
    (type = NonGUIApplicationType) ifTrue:[ ^ ApplicationDefinition ].
16682
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
   293
    (type = FolderForSubApplicationsType) ifTrue:[ ^ FolderForProjectsDefinition ].
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   294
    (type = 'Application') ifTrue:[ ^ ApplicationDefinition ].     "/ temporary - for backward compat.
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   295
    self error:'unknown project type'.
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   296
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   297
    "Created: / 17-08-2006 / 14:46:28 / cg"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   298
    "Modified: / 23-08-2006 / 13:49:27 / cg"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   299
!
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   300
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   301
newForPackage:packageID
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   302
    ^ self
17344
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   303
        newNamed:(self projectDefinitionClassNameForDefinitionOf:packageID)
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   304
        package:packageID.
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   305
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   306
    "Created: / 11-08-2006 / 14:27:19 / cg"
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   307
!
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   308
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   309
newNamed:newName package:packageID
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   310
    |newClass|
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   311
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   312
    "/ for now, we are strict.
17344
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   313
    self assert:(self projectDefinitionClassNameForDefinitionOf:packageID) = newName.
9569
b0bf179c9bf5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9559
diff changeset
   314
    self assert:(self ~~ ProjectDefinition).  "ProjectDefinition is abstract"
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   315
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   316
    newClass := self
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   317
                    subclass:(newName asSymbol)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   318
                    instanceVariableNames:''
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   319
                    classVariableNames:''
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   320
                    poolDictionaries:''
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   321
                    category:(self defaultCategory).
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   322
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   323
    newClass package:packageID asSymbol.
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   324
    ^ newClass
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   325
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   326
    "Created: / 09-08-2006 / 17:57:37 / fm"
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   327
    "Modified: / 09-08-2006 / 19:27:53 / fm"
9569
b0bf179c9bf5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9559
diff changeset
   328
    "Modified: / 17-08-2006 / 17:24:23 / cg"
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   329
! !
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   330
9569
b0bf179c9bf5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9559
diff changeset
   331
!ProjectDefinition class methodsFor:'accessing'!
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   332
12575
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   333
directory
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   334
    "for packageId compatibility"
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   335
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   336
    ^ self moduleDirectory
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   337
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   338
    "
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   339
     bosch_dapasx_datenbasis_Definition moduleDirectory
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   340
     bosch_dapasx_parameter_system_Definition moduleDirectory
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   341
     stx_libbasic3 moduleDirectory
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   342
     cg_croquet moduleDirectory
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   343
     cg_croquet package asPackageId module
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   344
     cg_croquet moduleDirectory
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   345
     stx_goodies_xml_vw moduleDirectory
12575
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   346
    "
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   347
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   348
    "Created: / 08-08-2006 / 20:25:39 / fm"
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   349
    "Modified: / 18-08-2006 / 12:18:33 / cg"
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   350
!
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   351
13823
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   352
extensionsRevisionInfoForManager:managerOrNil
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   353
    "return the revisionInfo object for my extensions for a particular source code manager.
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   354
     Return nil, if there is either no manager, or I have no extensions"
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   355
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   356
    |mgr versionMethod revString|
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   357
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   358
    (mgr := managerOrNil) isNil ifTrue:[
15603
7da6f15bd81c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15528
diff changeset
   359
        mgr := SourceCodeManagerUtilities sourceCodeManagerFor:self.
13823
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   360
        mgr isNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   361
            ^ nil
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   362
        ].
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   363
    ].
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   364
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   365
    versionMethod := mgr nameOfVersionMethodForExtensions.
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   366
    (self class implements:versionMethod) ifFalse:[^ nil].
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   367
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   368
    revString := self perform:(mgr nameOfVersionMethodForExtensions) ifNotUnderstood:nil.
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   369
    revString isNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   370
        ^ nil.
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   371
    ].
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   372
    ^ mgr revisionInfoFromString:revString.
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   373
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   374
    "
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
   375
     (stx_libcomp extensionsRevisionInfoForManager:nil) revision
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
   376
     (stx_libbasic extensionsRevisionInfoForManager:nil)
13823
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   377
    "
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   378
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   379
    "Created: / 25-11-2011 / 14:34:01 / cg"
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   380
!
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   381
19996
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   382
fullPackageName
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   383
    "all components with underlines"
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   384
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   385
    ^ self fullPackageNameFor: self package
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   386
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   387
    "
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   388
     stx_libwidg2 packageName
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   389
     stx_libwidg2 fullPackageName
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   390
     stx_goodies_refactoryBrowser_browser packageName
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   391
     stx_goodies_refactoryBrowser_browser fullPackageName
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   392
    "
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   393
!
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   394
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   395
fullPackageNameFor: aProjectID
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   396
    ^ (aProjectID copyReplaceAny:':/' with:$_)
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   397
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   398
    "
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   399
     stx_goodies_refactoryBrowser_lint fullPackageNameFor:#stx_goodies_refactoryBrowser_lint  
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   400
    "
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   401
!
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   402
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   403
initialClassNameForDefinitionOf:aPackageId
17344
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   404
    <resource: #obsolete>
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   405
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   406
    "now obsolete - left here for backward compatibility
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   407
     given a package-ID, return an appropriate class name for this package"
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   408
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   409
    ^ self projectDefinitionClassNameForDefinitionOf:aPackageId
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   410
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   411
    "
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   412
     ProjectDefinition projectDefinitionClassNameForDefinitionOf:'bosch:dapasx/interactiver_editor'
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   413
     ProjectDefinition projectDefinitionClassNameForDefinitionOf:'stx:libbasic'
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   414
     ProjectDefinition projectDefinitionClassNameForDefinitionOf:'stx:goodies/xml'
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   415
     ProjectDefinition projectDefinitionClassNameForDefinitionOf:'stx/goodies/xml'
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   416
     ProjectDefinition projectDefinitionClassNameForDefinitionOf:'stx_goodies_xml'
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   417
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   418
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   419
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   420
libraryName
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
   421
    ^ self package asPackageId libraryName
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   422
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   423
    "
9688
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   424
     bosch_dapasx_datenbasis libraryName
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
   425
     stx_libbasic3 libraryName
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   426
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   427
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   428
    "Modified: / 09-08-2006 / 18:20:29 / fm"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
   429
    "Modified: / 18-08-2006 / 12:36:45 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   430
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   431
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   432
libraryNameFor:aProjectID
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
   433
    ^ aProjectID asPackageId libraryName
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   434
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   435
    "
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
   436
     bosch_dapasx_datenbasis libraryName
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
   437
     stx_libbasic3 libraryNameFor:'stx:libbasic'
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   438
     stx_libbasic3 libraryNameFor:'bosch:dapasx/datenbasis'
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   439
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   440
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   441
    "Modified: / 09-08-2006 / 18:20:29 / fm"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
   442
    "Modified: / 18-08-2006 / 12:37:02 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   443
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   444
14577
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   445
loadDirectory
19731
a8178e7a35b2 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 19730
diff changeset
   446
    "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
   447
     return that directory. Otherwise return nil."
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   448
14583
266314c7fbfc class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14580
diff changeset
   449
    ^ self getAttribute:#projectDirectory
14577
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   450
!
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   451
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   452
loadDirectory:aDirectory
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   453
    "remember the directory from which I was loaded from"
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   454
14583
266314c7fbfc class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14580
diff changeset
   455
    self setAttribute:#projectDirectory to:aDirectory
14577
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   456
!
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   457
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   458
module
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   459
    ^ self moduleOfClass:self
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   460
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   461
    "
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   462
       bosch_dapasx_datenbasis_Definition module
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   463
       DapasX_Datenbasis module
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   464
       stx_libbasic3 module
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   465
       stx_libbasic3 directory
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   466
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   467
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   468
    "Created: / 08-08-2006 / 20:24:53 / fm"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   469
    "Modified: / 09-08-2006 / 16:16:37 / fm"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
   470
    "Modified: / 17-08-2006 / 20:50:46 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   471
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   472
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   473
moduleDirectory
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
   474
    ^ (PackageId from:self package) directory
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   475
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   476
    "
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
   477
     bosch_dapasx_datenbasis_Definition moduleDirectory
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
   478
     bosch_dapasx_parameter_system_Definition moduleDirectory
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   479
     stx_libbasic3 moduleDirectory
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   480
     cg_croquet moduleDirectory
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   481
     cg_croquet package asPackageId module
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   482
     cg_croquet moduleDirectory
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   483
     stx_goodies_xml_vw moduleDirectory
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
   484
     cg_demos_demo1 moduleDirectory
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   485
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   486
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   487
    "Created: / 08-08-2006 / 20:25:39 / fm"
14339
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
   488
    "Modified (comment): / 05-09-2012 / 10:07:18 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   489
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   490
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   491
moduleDirectoryFor:aProjectID
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   492
    ^ (aProjectID subStrings:$:) last
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   493
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   494
    "
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   495
        bosch_dapasx_datenbasis_Definition moduleDirectory
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   496
        bosch_dapasx_parameter_system_Definition moduleDirectory
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   497
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   498
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   499
    "Created: / 08-08-2006 / 20:25:39 / fm"
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   500
    "Modified: / 17-08-2006 / 14:13:41 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   501
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   502
9891
62a779fbc130 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   503
moduleDirectory_win32
15528
a3c55af6af90 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15526
diff changeset
   504
    ^ (PackageId from:self package) directory copyReplaceAll:$/ with:$\
9891
62a779fbc130 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   505
62a779fbc130 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   506
    "
62a779fbc130 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   507
     bosch_dapasx_datenbasis moduleDirectory_win32
62a779fbc130 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   508
     bosch_dapasx_parameter_system moduleDirectory_win32
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   509
     stx_libbasic3 moduleDirectory_win32
9891
62a779fbc130 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   510
    "
62a779fbc130 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   511
62a779fbc130 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   512
    "Created: / 14-09-2006 / 20:19:17 / cg"
62a779fbc130 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   513
!
62a779fbc130 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   514
10562
929109c6ad37 *** empty log message ***
fm
parents: 10507
diff changeset
   515
moduleDirectory_win32For: projectID
929109c6ad37 *** empty log message ***
fm
parents: 10507
diff changeset
   516
15528
a3c55af6af90 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15526
diff changeset
   517
    ^(self moduleDirectoryFor:projectID) copyReplaceAll:$/ with:$\
10562
929109c6ad37 *** empty log message ***
fm
parents: 10507
diff changeset
   518
929109c6ad37 *** empty log message ***
fm
parents: 10507
diff changeset
   519
    "
929109c6ad37 *** empty log message ***
fm
parents: 10507
diff changeset
   520
     self moduleDirectory_win32For: #'bosch:dapasx/pav_vergleich'
929109c6ad37 *** empty log message ***
fm
parents: 10507
diff changeset
   521
     self moduleDirectory_win32For: #'stx:goodies/xml/stx'
929109c6ad37 *** empty log message ***
fm
parents: 10507
diff changeset
   522
     self moduleDirectory_win32For: #'stx:libbasic2'
929109c6ad37 *** empty log message ***
fm
parents: 10507
diff changeset
   523
    "
15528
a3c55af6af90 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15526
diff changeset
   524
a3c55af6af90 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15526
diff changeset
   525
    "Modified: / 16-07-2013 / 19:47:24 / cg"
10562
929109c6ad37 *** empty log message ***
fm
parents: 10507
diff changeset
   526
!
929109c6ad37 *** empty log message ***
fm
parents: 10507
diff changeset
   527
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   528
moduleFor:aProjectID
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   529
    ^ (aProjectID subStrings:$:) first
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   530
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   531
    "
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   532
       DapasXProject module
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   533
       DapasX_Datenbasis module
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   534
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   535
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   536
    "Created: / 09-08-2006 / 16:16:16 / fm"
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   537
    "Modified: / 17-08-2006 / 14:13:46 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   538
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   539
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   540
moduleOfClass:aClass
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   541
    ^ self moduleFor:aClass package
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   542
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   543
    "
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   544
       DapasXProject module
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   545
       DapasX_Datenbasis module
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   546
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   547
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   548
    "Created: / 09-08-2006 / 16:16:16 / fm"
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   549
    "Modified: / 17-08-2006 / 14:13:51 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   550
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   551
12360
18b9a4b30466 preps to allow for monticello packages to be loaded
Claus Gittinger <cg@exept.de>
parents: 12357
diff changeset
   552
monticelloPackageName
18b9a4b30466 preps to allow for monticello packages to be loaded
Claus Gittinger <cg@exept.de>
parents: 12357
diff changeset
   553
    "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
   554
18b9a4b30466 preps to allow for monticello packages to be loaded
Claus Gittinger <cg@exept.de>
parents: 12357
diff changeset
   555
    ^ nil
18b9a4b30466 preps to allow for monticello packages to be loaded
Claus Gittinger <cg@exept.de>
parents: 12357
diff changeset
   556
!
18b9a4b30466 preps to allow for monticello packages to be loaded
Claus Gittinger <cg@exept.de>
parents: 12357
diff changeset
   557
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   558
msdosPathToPackage:toPackageID from:fromPackageID
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   559
    "Returns the path to the package defined by aPackageID relative to my path"
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   560
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
   561
    |parts1 parts2 common up down|
9852
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
   562
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
   563
    parts1 := fromPackageID asCollectionOfSubstringsSeparatedByAny:':/'.
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
   564
    parts2 := toPackageID asCollectionOfSubstringsSeparatedByAny:':/'.
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
   565
    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
   566
    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
   567
    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
   568
    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
   569
       down isEmpty ifTrue:[^ '.'].
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   570
        ^ down.
9852
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
   571
    ].
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
   572
    down isEmpty ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   573
        ^ up.
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
   574
    ].
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   575
    ^ up, '\', down
9901
6ea34c2d6a54 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9898
diff changeset
   576
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   577
    "
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   578
     self msdosPathToPackage:'bosch:dapasx/kernel' from:'bosch:dapasx/application'
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   579
     self msdosPathToPackage:'stx:libbasic' from:'bosch:dapasx/application'
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   580
     self msdosPathToPackage:'bosch:dapasx/application' from:'stx:libbasic'
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   581
     self msdosPathToPackage:'exept:expecco' from:'exept:expecco/application'
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   582
     self msdosPathToPackage:'exept:expecco/application' from:'exept:expecco'
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   583
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   584
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   585
    "Created: / 17-08-2006 / 14:26:39 / cg"
9901
6ea34c2d6a54 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9898
diff changeset
   586
    "Modified: / 14-09-2006 / 22:04:56 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   587
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   588
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
   589
packageDirectory
19731
a8178e7a35b2 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 19730
diff changeset
   590
    "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
   591
     return that directory.
14577
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   592
     Otherwise ask Smalltalk for my package directory a long the package path."
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   593
14580
b9514d8a5211 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14577
diff changeset
   594
    |loadDirectory|
b9514d8a5211 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14577
diff changeset
   595
14586
4e6d15f5defc class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14585
diff changeset
   596
    (loadDirectory := self loadDirectory) ifNotNil:[ ^ loadDirectory ].
12315
71599fb91dcf comment/format in: #packageDirectory
Claus Gittinger <cg@exept.de>
parents: 12314
diff changeset
   597
    ^ Smalltalk packageDirectoryForPackageId: self package
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
   598
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
   599
    "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
   600
!
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
   601
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   602
packageName
9688
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   603
    "the last component"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   604
9688
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   605
    ^ self packageNameFor: self package
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   606
9688
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   607
    "
10810
e62a55885c85 New: #allPreRequisitesSorted
Stefan Vogel <sv@exept.de>
parents: 10806
diff changeset
   608
     stx_libwidg2 packageName
16812
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
   609
     stx_goodies_refactoryBrowser_browser packageName
9688
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   610
     bosch_dapasx_hw_schnittstellen packageName
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   611
     bosch_dapasx_datenbasis packageName
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   612
     bosch_dapasx_parameter_system packageName
9688
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   613
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   614
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   615
    "Created: / 08-08-2006 / 20:24:53 / fm"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   616
    "Modified: / 09-08-2006 / 16:16:37 / fm"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   617
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   618
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   619
packageNameFor: aProjectID
9688
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   620
    ^ (aProjectID asCollectionOfSubstringsSeparatedByAny:':/') last.
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   621
9688
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   622
    "
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   623
     bosch_dapasx_hw_schnittstellen packageName
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   624
     bosch_dapasx_datenbasis packageName
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   625
     bosch_dapasx_parameter_system packageName
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   626
     cg_croquet packageName
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   627
     stx_goodies_xml_vw packageName
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   628
     stx_goodies_xml_vw packageDirectory
9688
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   629
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   630
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   631
    "Created: / 08-08-2006 / 20:24:53 / fm"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   632
    "Modified: / 09-08-2006 / 16:16:37 / fm"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   633
    "Modified: / 11-08-2006 / 14:02:32 / cg"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   634
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   635
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   636
parentProject
17236
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   637
    "return the packageID of the parent project. 
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   638
     That is the projectID of the package above in the folder hierarchy"
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   639
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
   640
    ^ (self parentProjectFor: self package)
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   641
17236
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   642
    "
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   643
     bosch_dapasx_hw_schnittstellen_Definition parentProject
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   644
     DapasX_Datenbasis parentProject
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   645
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   646
     stx_libbasic parentProject      
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   647
     stx_goodies_refactoryBrowser_lint parentProject      
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   648
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   649
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   650
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   651
parentProjectFor: aProjectID
17236
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   652
    "given a packageID symbol or string, return the packageID of the
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   653
     parent project. 
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   654
     That is the projectID of the package above in the folder hierarchy"
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   655
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   656
    |path|
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   657
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   658
    path := aProjectID splitByAny:':/'.
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   659
    path size == 1 ifTrue:[^ nil].
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   660
    path size == 2 ifTrue:[^ path first].
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   661
    ^ path first , ':' , ((path copyFrom:2 to:path size - 1) asStringWith:'/')
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   662
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   663
    "
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   664
     bosch_dapasx_hw_schnittstellen parentProject
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   665
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   666
     self parentProjectFor:'bosch:dapasx'    
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   667
     self parentProjectFor:'bosch:dapasx/hw_schnittstellen'    
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   668
     self parentProjectFor:'stx:goodies/refactoryBrowser/lint'                   
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   669
     self parentProjectFor:'stx:goodies/svg'                   
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   670
     self parentProjectFor:'stx:libbasic'                      
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   671
     self parentProjectFor:'exept:expecco/application'         
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   672
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   673
     self parentProjectFor:'stx'                   
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   674
     self parentProjectFor:'exept'                   
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   675
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   676
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   677
10366
8990764f8911 #compiled_classNamesForPlatform: does not return classes names,
Stefan Vogel <sv@exept.de>
parents: 10350
diff changeset
   678
pathSeparator:platformName
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   679
    ^ platformName == #unix ifTrue:['/'] ifFalse:['\'].
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   680
!
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   681
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   682
pathTo:aBaseFilename inPackage:aPackageID architecture:arch
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   683
    "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
   684
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   685
    |p separator|
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   686
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   687
    separator := self pathSeparator:arch.
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   688
    p := self pathToPackage:aPackageID withSeparator:separator.
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   689
    aBaseFilename isNil ifTrue:[^ p].
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   690
    ^ p , separator, aBaseFilename
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   691
!
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   692
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   693
pathToPackage:toPackageID from:fromPackageID withSeparator:pathSeparator
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   694
    "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
   695
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   696
    |parts1 parts2 common up down rel oneUp|
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   697
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   698
    oneUp := '..', pathSeparator.
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   699
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   700
    parts1 := fromPackageID asCollectionOfSubstringsSeparatedByAny:':/'.
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   701
    parts2 := toPackageID asCollectionOfSubstringsSeparatedByAny:':/'.
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   702
    common := parts1 commonPrefixWith:parts2.
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   703
    common notEmpty ifTrue:[
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   704
        up := ((1 to:parts1 size - common size) collect:[:p | oneUp]) asStringWith:''.
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   705
        down := (parts2 copyFrom:common size+1) asStringWith:pathSeparator.
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   706
        (up isEmpty and:[down isEmpty]) ifTrue:[^ '.'].
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   707
        ^ up , down
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   708
    ].
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   709
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   710
    rel := (self topRelativePathToPackage:toPackageID withSeparator:pathSeparator).
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   711
    (rel startsWith:('stx', pathSeparator)) ifTrue:[
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   712
        ^ '$(TOP)', (rel copyFrom:'stx/' size) "/ notice: the separator remains
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   713
    ].
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   714
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   715
    ^ '$(TOP)', pathSeparator, oneUp, rel.
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   716
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   717
    "
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   718
     self pathToPackage:'bosch:dapasx/kernel' from:'bosch:dapasx/application' withSeparator:'\'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   719
     self pathToPackage:'stx:libbasic' from:'bosch:dapasx/application' withSeparator:'\'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   720
     self pathToPackage:'bosch:dapasx/application' from:'stx:libbasic' withSeparator:'\'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   721
    "
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   722
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   723
    "Created: / 14-09-2006 / 15:21:10 / cg"
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   724
!
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   725
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   726
pathToPackage:aPackageID withSeparator:pathSeparator
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   727
    "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
   728
10875
ed4bd37a995e Fix unix Make.proto generation: resource file copy
Stefan Vogel <sv@exept.de>
parents: 10872
diff changeset
   729
    |rel|
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   730
9880
378bf1f5afa1 local headers
Claus Gittinger <cg@exept.de>
parents: 9852
diff changeset
   731
    aPackageID asPackageId module = self package asPackageId module ifTrue:[
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   732
        ^ self pathToPackage:aPackageID from:self package withSeparator:pathSeparator.
9880
378bf1f5afa1 local headers
Claus Gittinger <cg@exept.de>
parents: 9852
diff changeset
   733
    ].
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   734
    rel := self topRelativePathToPackage:aPackageID withSeparator:pathSeparator.
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   735
    (rel startsWith:('stx', pathSeparator)) ifTrue:[
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   736
        ^ '$(TOP)', (rel copyFrom:'stx/' size).   "keep the separator"
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   737
    ] ifFalse:[
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   738
        ^ '$(TOP)', pathSeparator, '..', pathSeparator, rel
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   739
    ]
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   740
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   741
    "
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   742
     exept_expecco_application pathToPackage:'exept:expecco/application' withSeparator:'\'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   743
     exept_expecco_application pathToPackage:'exept:expecco/report' withSeparator:'\'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   744
     stx_libbasic pathToPackage:'exept:expecco/application' withSeparator:'\'
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   745
    "
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   746
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   747
    "Modified: / 16-08-2006 / 18:55:41 / User"
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   748
    "Created: / 14-09-2006 / 13:21:23 / cg"
9880
378bf1f5afa1 local headers
Claus Gittinger <cg@exept.de>
parents: 9852
diff changeset
   749
    "Modified: / 14-09-2006 / 15:23:59 / cg"
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   750
!
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   751
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   752
pathToTopFor:aProjectID withSeparator:aPathSeparator
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   753
    "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
   754
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   755
    |parts oneUp|
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   756
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   757
    oneUp := '..', aPathSeparator.
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   758
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   759
    parts := aProjectID asCollectionOfSubstringsSeparatedByAny:':/'.
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   760
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   761
    parts first = 'stx' ifTrue:[
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   762
        parts size == 1 ifTrue:[^ ''].
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   763
        ^ (((2 to:parts size-1) collect:[:p | oneUp]) asStringWith:'') , '..'
9880
378bf1f5afa1 local headers
Claus Gittinger <cg@exept.de>
parents: 9852
diff changeset
   764
    ].
378bf1f5afa1 local headers
Claus Gittinger <cg@exept.de>
parents: 9852
diff changeset
   765
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   766
    ^ ((parts collect:[:p | oneUp]) asStringWith:'') , 'stx'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   767
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
     self pathToTopFor: #'exept' with:'/'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   770
     self pathToTopFor: #'exept:expecco' with:'/'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   771
     self pathToTopFor: #'exept:expecco/application' with:'/'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   772
     self pathToTopFor: #'stx' with:'/'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   773
     self pathToTopFor: #'stx:libview' with:'/'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   774
     self pathToTopFor: #'stx:goodies/foo' with:'/'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   775
    "
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   776
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   777
    "Created: / 14-09-2006 / 14:59:53 / cg"
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
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   780
pathToTopWithSeparator:aPathSeparator
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
   781
    "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
   782
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   783
    ^ self pathToTopFor:self package withSeparator:aPathSeparator
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   784
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   785
    "
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   786
     exept_expecco_application pathToTopWithSeparator:'\'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   787
     stx_libbasic pathToTopWithSeparator:'\'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   788
     stx_goodies_xml pathToTopWithSeparator:'\'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   789
     stx_libhtml pathToTopWithSeparator:'\'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   790
     stx_goodies_refactoryBrowser_changes pathToTopWithSeparator:'\'
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
   791
    "
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
   792
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
   793
    "Created: / 09-08-2006 / 15:45:54 / fm"
9852
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
   794
    "Modified: / 14-09-2006 / 15:01:47 / cg"
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
   795
!
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
   796
17344
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   797
projectDefinitionClassNameForDefinitionOf:aPackageId
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   798
    "given a package-ID, return an appropriate class name for this package"
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   799
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   800
    |s|
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   801
18503
1846b33e4918 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18477
diff changeset
   802
    s := aPackageId asString copy replaceAny:' :/-' with:$_.
17344
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   803
    (s endsWith:$_) ifTrue:[
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   804
        s := s copyButLast:1
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   805
    ].
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   806
    ^ s
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   807
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   808
    "
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   809
     ProjectDefinition initialClassNameForDefinitionOf:'bosch:dapasx/interactiver_editor'
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   810
     ProjectDefinition initialClassNameForDefinitionOf:'stx:libbasic'
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   811
     ProjectDefinition initialClassNameForDefinitionOf:'stx:goodies/xml'
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   812
     ProjectDefinition initialClassNameForDefinitionOf:'stx/goodies/xml'
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   813
     ProjectDefinition initialClassNameForDefinitionOf:'stx_goodies_xml'
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   814
    "
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   815
!
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   816
10433
4768502f5cbf Do not try to load already loaded projects
Stefan Vogel <sv@exept.de>
parents: 10430
diff changeset
   817
projectIsLoaded
4768502f5cbf Do not try to load already loaded projects
Stefan Vogel <sv@exept.de>
parents: 10430
diff changeset
   818
    "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
   819
10434
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
   820
    projectIsLoaded isNil ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   821
        projectIsLoaded := false.
10433
4768502f5cbf Do not try to load already loaded projects
Stefan Vogel <sv@exept.de>
parents: 10430
diff changeset
   822
    ].
10434
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
   823
    ^ projectIsLoaded
10433
4768502f5cbf Do not try to load already loaded projects
Stefan Vogel <sv@exept.de>
parents: 10430
diff changeset
   824
4768502f5cbf Do not try to load already loaded projects
Stefan Vogel <sv@exept.de>
parents: 10430
diff changeset
   825
    "
4768502f5cbf Do not try to load already loaded projects
Stefan Vogel <sv@exept.de>
parents: 10430
diff changeset
   826
      stx_libbasic projectIsLoaded
13251
a7dbdfdc87e6 changed:
Stefan Vogel <sv@exept.de>
parents: 13216
diff changeset
   827
      (ProjectDefinition definitionClassForPackage:#'stx:libbasic') projectIsLoaded
10433
4768502f5cbf Do not try to load already loaded projects
Stefan Vogel <sv@exept.de>
parents: 10430
diff changeset
   828
    "
4768502f5cbf Do not try to load already loaded projects
Stefan Vogel <sv@exept.de>
parents: 10430
diff changeset
   829
!
4768502f5cbf Do not try to load already loaded projects
Stefan Vogel <sv@exept.de>
parents: 10430
diff changeset
   830
15760
5c670f6b5d7f class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15603
diff changeset
   831
projectIsLoaded:aBoolean
5c670f6b5d7f class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15603
diff changeset
   832
    projectIsLoaded := aBoolean.
5c670f6b5d7f class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15603
diff changeset
   833
    aBoolean ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   834
        "register myself as dependent - I want to get notified on method changes"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   835
        self class addDependent:self.
15760
5c670f6b5d7f class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15603
diff changeset
   836
        self postLoadAction.
5c670f6b5d7f class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15603
diff changeset
   837
        self executeHooks: #postLoad.
10434
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
   838
    ].
10433
4768502f5cbf Do not try to load already loaded projects
Stefan Vogel <sv@exept.de>
parents: 10430
diff changeset
   839
!
4768502f5cbf Do not try to load already loaded projects
Stefan Vogel <sv@exept.de>
parents: 10430
diff changeset
   840
21449
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
   841
projectTags
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
   842
    "a list of resource-tags used in the project.
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
   843
     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
   844
     Allowing convenient tagging for things like '<resource: EXPECCO_API>'.
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
   845
     When redefined, a collection of useful tag-strings should be returned."
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
   846
     
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
   847
    ^ #()
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
   848
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
   849
    "Created: / 15-02-2017 / 16:42:48 / cg"
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
   850
!
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
   851
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   852
topRelativePathTo:aBaseFilename inPackage:aPackageID architecture:arch
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   853
    "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
   854
     and adding for each one '../' to get the ST/X top directory"
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   855
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   856
    |p separator|
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   857
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   858
    separator := self pathSeparator:arch.
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   859
    p := self topRelativePathToPackage:aPackageID withSeparator:separator.
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   860
    aBaseFilename isNil ifTrue:[^ p].
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   861
    ^ p , separator, aBaseFilename
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   862
!
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   863
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   864
topRelativePathToPackage:aPackageID withSeparator:aDirectorySeparator
18503
1846b33e4918 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18477
diff changeset
   865
    "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
   866
     Basically this simply replaces colons and slashes by the OS's path separator."
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   867
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   868
    ^ aPackageID asString copyReplaceAny:':/' with:aDirectorySeparator first
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   869
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   870
    "
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   871
     self topRelativePathToPackage:'stx:goodies/xml' withSeparator:'\'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   872
     self topRelativePathToPackage:'bosch:dapasx/kernel' withSeparator:'\'
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   873
    "
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   874
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   875
    "Created: / 14-09-2006 / 13:20:40 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   876
! !
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   877
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   878
!ProjectDefinition class methodsFor:'accessing - coverage'!
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   879
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   880
excludedFromCoverage
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   881
    "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
   882
     Entries maybe ClassName or #(ClassName selector)
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   883
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   884
     Please note that certain classes and methods are excluded
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   885
     in #Builder::CoverageReport>>excludedFromCoverage:.
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   886
    "
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   887
    ^ #()
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   888
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   889
    "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
   890
    "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
   891
!
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   892
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   893
excludedFromCoverage: aMethod
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   894
    "Return true if given method should be excluded from coverage
18224
5f63bef9237c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 18178
diff changeset
   895
     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
   896
     matching some criteria.
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   897
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   898
     Please note that certain classes and methods are excluded
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   899
     in Builder::CoverageReport>>excludedFromCoverage:.
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   900
    "
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   901
18224
5f63bef9237c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 18178
diff changeset
   902
    |excluded mclass mselector|
5f63bef9237c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 18178
diff changeset
   903
5f63bef9237c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 18178
diff changeset
   904
    excluded := self excludedFromCoverage.
5f63bef9237c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 18178
diff changeset
   905
    excluded notEmptyOrNil ifTrue:[
5f63bef9237c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 18178
diff changeset
   906
        mclass := aMethod mclass.
5f63bef9237c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 18178
diff changeset
   907
        mselector := aMethod selector.
5f63bef9237c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 18178
diff changeset
   908
        excluded do:[:eachSpecLine|
5f63bef9237c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 18178
diff changeset
   909
            eachSpecLine isArray ifTrue:[
5f63bef9237c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 18178
diff changeset
   910
                (eachSpecLine first = mclass name and:[eachSpecLine second == mselector]) ifTrue:[ ^ true ].
5f63bef9237c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 18178
diff changeset
   911
            ].
5f63bef9237c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 18178
diff changeset
   912
            eachSpecLine = mclass name ifTrue:[ ^ true ].                
5f63bef9237c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 18178
diff changeset
   913
        ].
5f63bef9237c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 18178
diff changeset
   914
    ].
5f63bef9237c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 18178
diff changeset
   915
5f63bef9237c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 18178
diff changeset
   916
    ^ false
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   917
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   918
    "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
   919
    "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
   920
! !
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   921
17289
9df64c66192f class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17253
diff changeset
   922
17228
a219a717e0aa class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17186
diff changeset
   923
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   924
!ProjectDefinition class methodsFor:'accessing - packaging'!
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   925
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   926
classNames:aCollectionOfClassNames
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   927
    "set the set of classes"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   928
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   929
    self classNamesAndAttributes:aCollectionOfClassNames usingCompiler:nil
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   930
!
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   931
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   932
classNamesAndAttributes:newSpec usingCompiler:compilerOrNil
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   933
    "set the set of classes. and attributes
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   934
     Because this requires compilation of my classList-method, a compiler can be passed in,
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   935
     which has to do the job.
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   936
     (this is used by the systembrowser to pass in a CodeGeneratorTool with undo support)"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   937
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   938
    |oldSpec newCode|
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   939
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   940
    oldSpec := self classNamesAndAttributes.
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   941
    newSpec = oldSpec ifTrue: [^ self].
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   942
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   943
    newCode := self classNamesAndAttributes_codeFor:newSpec.
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   944
15006
4ddc728c6817 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15005
diff changeset
   945
    self compile:newCode categorized:'description - contents' using:compilerOrNil
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   946
!
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   947
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   948
excludeClasses:toExclude usingCompiler:compilerOrNil
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   949
    "exclude (remove from classList) a number of classes.
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   950
     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
   951
     which has to do the job.
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   952
     (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
   953
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   954
    |newSpec|
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   955
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   956
    newSpec := self classNamesAndAttributes copy.
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   957
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   958
    toExclude do:[:eachClassToExclude |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   959
        |className|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   960
        className := eachClassToExclude theNonMetaclass name.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   961
        (self allClassNames includes:className) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   962
            |idx|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   963
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   964
            idx := newSpec findFirst:[:entry | entry = className or:[entry first = className]].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   965
            idx ~~ 0 ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   966
                newSpec := newSpec copyWithoutIndex:idx.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   967
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   968
        ].
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   969
    ].
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   970
    self classNamesAndAttributes:newSpec usingCompiler:compilerOrNil
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   971
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   972
    "Created: / 30-08-2007 / 18:28:28 / cg"
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   973
!
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   974
15069
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   975
excludeMethodFor:selector inClassNamed:className usingCompiler:compilerOrNil
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   976
    "exclude (remove from extensionList) a method by name.
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   977
     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
   978
     which has to do the job.
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   979
     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
   980
     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
   981
15764
fa42cc60ec5a class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15761
diff changeset
   982
    |oldSpec newSpec newCode idx|
15069
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   983
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   984
    oldSpec := self extensionMethodNames.
15764
fa42cc60ec5a class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15761
diff changeset
   985
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
   986
    idx := (1 to:oldSpec size-1 by:2)
15069
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   987
                detect:[:i |
15764
fa42cc60ec5a class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15761
diff changeset
   988
                    ((oldSpec at:i) = className)
fa42cc60ec5a class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15761
diff changeset
   989
                    and:[ (oldSpec at:i+1) = selector ]]
fa42cc60ec5a class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15761
diff changeset
   990
                ifNone:[ ^ self ].
15069
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   991
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   992
    "/ attention: there are two spec-elements per method
15764
fa42cc60ec5a class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15761
diff changeset
   993
    newSpec := oldSpec copyWithoutIndex:idx toIndex:idx+1.
15069
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   994
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   995
    newCode := self extensionMethodNames_code_For:newSpec.
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   996
    self compile:newCode categorized:'description - contents' using:compilerOrNil
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   997
!
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   998
15005
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   999
excludeMethods:toRemove usingCompiler:compilerOrNil
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1000
    "exclude (remove from extensionList) a number of methods.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1001
     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
  1002
     which has to do the job.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1003
     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
  1004
     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
  1005
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1006
    |oldSpec newSpec newCode extensionMethods|
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1007
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1008
    oldSpec := self extensionMethodNames.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1009
    newSpec := oldSpec copy.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1010
    extensionMethods := self extensionMethods.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1011
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1012
    toRemove do:[:eachMethodToRemove |
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1013
        |className selector idx|
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1014
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1015
        (extensionMethods includes:eachMethodToRemove) ifTrue:[
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1016
            className := eachMethodToRemove mclass name.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1017
            selector := eachMethodToRemove selector.
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  1018
            idx := (1 to:newSpec size-1 by:2)
15069
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
  1019
                        detect:[:i |
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
  1020
                            ((newSpec at:i) = className)
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
  1021
                            and:[ (newSpec at:i+1) = selector ]]
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
  1022
                        ifNone:nil.
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
  1023
            idx notNil ifTrue:[
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
  1024
                "/ attention: there are two spec-elements per method
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
  1025
                newSpec := newSpec removeFromIndex:idx toIndex:idx+1
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
  1026
            ]
15005
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1027
        ].
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1028
    ].
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1029
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1030
    newCode := self extensionMethodNames_code_For:newSpec.
15006
4ddc728c6817 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15005
diff changeset
  1031
    self compile:newCode categorized:'description - contents' using:compilerOrNil
15005
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1032
!
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1033
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1034
includeClasses:toInclude usingCompiler:compilerOrNil
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1035
    "include (add to classList) a number of classes.
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1036
     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
  1037
     which has to do the job.
15005
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1038
     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
  1039
     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
  1040
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  1041
    |oldSpec newSpec|
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1042
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1043
    oldSpec := self classNamesAndAttributes.
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1044
    newSpec := oldSpec copy.
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1045
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1046
    toInclude do:[:eachClassToInclude |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1047
        |className|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1048
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1049
        className := eachClassToInclude theNonMetaclass name.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1050
        (self compiled_classNames includes:className) ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1051
            | idx entry|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1052
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1053
            idx := oldSpec findFirst:[:entry | entry = className or:[entry first = className]].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1054
            idx == 0 ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1055
                newSpec := newSpec copyWith:(Array with:className)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1056
            ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1057
                entry := newSpec at:idx.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1058
                entry isArray ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1059
                    entry := entry copyWithout:#autoload
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1060
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1061
                newSpec at:idx put:entry
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1062
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1063
        ].
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1064
    ].
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1065
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  1066
    self classNamesAndAttributes:newSpec usingCompiler:compilerOrNil
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1067
!
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1068
15005
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1069
includeMethods:toInclude usingCompiler:compilerOrNil
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1070
    "include (add to extensionList) a number of methods.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1071
     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
  1072
     which has to do the job.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1073
     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
  1074
     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
  1075
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1076
    |oldSpec newSpec newCode extensionMethods|
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1077
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1078
    oldSpec := self extensionMethodNames.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1079
    newSpec := oldSpec copy.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1080
    extensionMethods := self extensionMethods.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1081
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1082
    toInclude do:[:eachMethodToInclude |
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1083
        (extensionMethods includes:eachMethodToInclude) ifFalse:[
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1084
            newSpec := newSpec copyWith:eachMethodToInclude mclass name.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1085
            newSpec := newSpec copyWith:eachMethodToInclude selector.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1086
        ].
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1087
    ].
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1088
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1089
    newCode := self extensionMethodNames_code_For:newSpec.
15006
4ddc728c6817 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15005
diff changeset
  1090
    self compile:newCode categorized:'description - contents' using:compilerOrNil
15005
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1091
!
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1092
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1093
makeClassesAutoloaded:toMakeAutoloaded usingCompiler:compilerOrNil
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1094
    "include as autoloaded (add to classList) a number of classes.
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1095
     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
  1096
     which has to do the job.
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1097
     (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
  1098
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  1099
    |newSpec|
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  1100
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  1101
    newSpec := self classNamesAndAttributes copy.
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1102
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1103
    toMakeAutoloaded do:[:eachClassToMakeAutoloaded |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1104
        |className|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1105
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1106
        className := eachClassToMakeAutoloaded theNonMetaclass name.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1107
        (self autoloaded_classNames includes:className) ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1108
            |idx entry|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1109
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1110
            idx := newSpec findFirst:[:entry | entry = className or:[entry first = className]].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1111
            idx == 0 ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1112
                newSpec := newSpec copyWith:(Array with:className with:#autoload)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1113
            ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1114
                entry := newSpec at:idx.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1115
                entry isArray ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1116
                    entry := (entry copyWithout:#autoload) copyWith:#autoload.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1117
                ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1118
                    entry := Array with:entry with:#autoload
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1119
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1120
                newSpec at:idx put:entry.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1121
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1122
        ].
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1123
    ].
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1124
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  1125
    self classNamesAndAttributes:newSpec usingCompiler:compilerOrNil
14982
89017a36e6e0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14981
diff changeset
  1126
!
89017a36e6e0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14981
diff changeset
  1127
15052
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1128
updateContentsMethodsCodeUsingCompiler:compilerOrNil ignoreOldDefinition:doRegenerate
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1129
    "regenerate the contents-describing methods.
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1130
     This searches through the system and picks classes and extension methods
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1131
     which have me as package and lists them in the generated class-
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1132
     and extensionMethods methods.
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1133
     If doRegenerate is true, forget any any previous contents info;
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1134
     otherwise, merge new items into the existing lists."
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1135
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1136
    Class packageQuerySignal
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1137
        answer:self package
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1138
        do:[
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  1139
            self
15052
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1140
                forEachContentsMethodsCodeToCompileDo:
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1141
                    [:code :category |
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1142
                        (compilerOrNil ? self theMetaclass compilerClass)
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1143
                            compile:code
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1144
                            forClass:self theMetaclass
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1145
                            inCategory:category.
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1146
                    ]
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1147
                ignoreOldDefinition:doRegenerate
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1148
        ].
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1149
!
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1150
14982
89017a36e6e0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14981
diff changeset
  1151
updateExtensionMethodNamesUsingCompiler:compilerOrNil
89017a36e6e0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14981
diff changeset
  1152
    "set the set of extension methods
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  1153
     Because this requires compilation of my extensionMethodNames-method,
14982
89017a36e6e0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14981
diff changeset
  1154
     a compiler can be passed in, which has to do the job.
89017a36e6e0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14981
diff changeset
  1155
     (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
  1156
89017a36e6e0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14981
diff changeset
  1157
    |newCode|
89017a36e6e0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14981
diff changeset
  1158
89017a36e6e0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14981
diff changeset
  1159
    newCode := self extensionMethodNames_code.
15006
4ddc728c6817 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15005
diff changeset
  1160
    self compile:newCode categorized:'description - contents' using:compilerOrNil
15052
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1161
!
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1162
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1163
updateMethodsCodeUsingCompiler:compilerOrNil ignoreOldDefinition:doRegenerate
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1164
    "regenerate the all contents- plus version describing methods.
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1165
     This searches through the system and picks classes and extension methods
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1166
     which have me as package and lists them in the generated class-
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1167
     and extensionMethods methods.
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1168
     If doRegenerate is true, forget any any previous contents info;
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1169
     otherwise, merge new items into the existing lists."
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1170
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1171
    Class packageQuerySignal
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1172
        answer:self package
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1173
        do:[
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  1174
            self
15052
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1175
                forEachMethodsCodeToCompileDo:
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1176
                    [:code :category |
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1177
                        (compilerOrNil ? self theMetaclass compilerClass)
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1178
                            compile:code
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1179
                            forClass:self theMetaclass
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1180
                            inCategory:category.
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1181
                    ]
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1182
                ignoreOldDefinition:doRegenerate
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1183
        ].
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1184
! !
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1185
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1186
!ProjectDefinition class methodsFor:'accessing - tests'!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1187
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1188
excludedFromTestSuite
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1189
    "List of testcases and/or tests excluded from testsuite.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1190
     Entries maybe ClassName or #(ClassName testName)
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1191
    "
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1192
    ^ #()
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1193
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1194
    "Created: / 03-06-2011 / 16:56:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1195
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1196
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1197
testSuite
13544
4c9779fe1181 commented: #testSuite
Claus Gittinger <cg@exept.de>
parents: 13485
diff changeset
  1198
    "generate and return a testSuite containing all of my test-classes"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1199
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1200
    |suite classes|
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1201
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1202
    suite := TestSuite named:self package.
13695
Claus Gittinger <cg@exept.de>
parents: 13694
diff changeset
  1203
    classes := self classes
14877
0e4127d94963 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14866
diff changeset
  1204
                select:[:each |
0e4127d94963 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14866
diff changeset
  1205
                    [
0e4127d94963 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14866
diff changeset
  1206
                    each isLoaded ifFalse:[each autoload].
0e4127d94963 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14866
diff changeset
  1207
                    (each isTestCaseLike) and:[ each isAbstract not ]
0e4127d94963 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14866
diff changeset
  1208
                    ] on: Autoload autoloadFailedSignal do:[
17236
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
  1209
                                'FAILED TO LOAD: ' infoPrint.
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
  1210
                                each name infoPrintCR.
14877
0e4127d94963 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14866
diff changeset
  1211
                        false
0e4127d94963 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14866
diff changeset
  1212
                    ]
0e4127d94963 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14866
diff changeset
  1213
                ].
13544
4c9779fe1181 commented: #testSuite
Claus Gittinger <cg@exept.de>
parents: 13485
diff changeset
  1214
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1215
    classes := classes asSortedCollection:[:a :b | a name <= b name ].
13695
Claus Gittinger <cg@exept.de>
parents: 13694
diff changeset
  1216
    classes do: [:eachClass |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1217
        | tests |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1218
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  1219
        eachClass name infoPrintCR.
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1220
        tests := eachClass suite tests.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1221
        tests := tests reject:[:test|self shouldExcludeTest: test].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1222
        suite addTests: tests
13544
4c9779fe1181 commented: #testSuite
Claus Gittinger <cg@exept.de>
parents: 13485
diff changeset
  1223
    ].
4c9779fe1181 commented: #testSuite
Claus Gittinger <cg@exept.de>
parents: 13485
diff changeset
  1224
    ^ suite
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1225
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1226
    "Created: / 01-04-2011 / 15:20:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1227
    "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
  1228
    "Modified: / 08-08-2011 / 14:59:45 / cg"
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  1229
! !
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  1230
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1231
!ProjectDefinition class methodsFor:'class initialization'!
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1232
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1233
initialize
14776
28a1f265cd65 add user friendly name to semaphores
Stefan Vogel <sv@exept.de>
parents: 14764
diff changeset
  1234
    AccessLock isNil ifTrue:[
28a1f265cd65 add user friendly name to semaphores
Stefan Vogel <sv@exept.de>
parents: 14764
diff changeset
  1235
        LibraryType := #Library.
28a1f265cd65 add user friendly name to semaphores
Stefan Vogel <sv@exept.de>
parents: 14764
diff changeset
  1236
        GUIApplicationType := #'GUI-Application'.
28a1f265cd65 add user friendly name to semaphores
Stefan Vogel <sv@exept.de>
parents: 14764
diff changeset
  1237
        NonGUIApplicationType := #'NonGUI-Application'.
16541
d258a79cee6e class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16540
diff changeset
  1238
        FolderForSubApplicationsType := #'Folder for Subapplications'.
14776
28a1f265cd65 add user friendly name to semaphores
Stefan Vogel <sv@exept.de>
parents: 14764
diff changeset
  1239
        AccessLock := Semaphore forMutualExclusion name:'ProjectDefinition Lock'.
28a1f265cd65 add user friendly name to semaphores
Stefan Vogel <sv@exept.de>
parents: 14764
diff changeset
  1240
        Verbose := false.
15172
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  1241
        PackagesBeingLoaded := Set new.
14776
28a1f265cd65 add user friendly name to semaphores
Stefan Vogel <sv@exept.de>
parents: 14764
diff changeset
  1242
    ].
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1243
10121
067b986ee77b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10119
diff changeset
  1244
    "
067b986ee77b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10119
diff changeset
  1245
     self initialize
067b986ee77b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10119
diff changeset
  1246
    "
067b986ee77b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10119
diff changeset
  1247
13592
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  1248
    "Modified: / 18-08-2011 / 13:48:31 / cg"
10121
067b986ee77b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10119
diff changeset
  1249
!
067b986ee77b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10119
diff changeset
  1250
067b986ee77b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10119
diff changeset
  1251
initializeAllProjectDefinitions
16179
7acaf638974b class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16163
diff changeset
  1252
    "tells all already loaded project definition classes that they are loaded
15761
36c017b9fe58 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15760
diff changeset
  1253
     (i.e. calls postLoadAction).
36c017b9fe58 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15760
diff changeset
  1254
     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
  1255
     Therefore, it's not invoked by the projDef's #initialize,
15761
36c017b9fe58 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15760
diff changeset
  1256
     but instead explicitely, by Smalltalk as a late step in the startup."
13695
Claus Gittinger <cg@exept.de>
parents: 13694
diff changeset
  1257
13609
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  1258
    |isStandAloneApp|
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  1259
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  1260
    isStandAloneApp := Smalltalk isStandAloneApp.
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  1261
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  1262
    self allSubclassesDo:[:eachProjectDefinitionClass |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1263
        eachProjectDefinitionClass isAbstract ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1264
            isStandAloneApp ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1265
                eachProjectDefinitionClass installAutoloadedClasses.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1266
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1267
            eachProjectDefinitionClass projectIsLoaded:true.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1268
        ]
13609
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  1269
    ].
10115
a43005ac7423 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10114
diff changeset
  1270
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1271
    "
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1272
     self initialize
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1273
    "
10113
78086bf25905 install autoloaded classes (if not already present)
Claus Gittinger <cg@exept.de>
parents: 10106
diff changeset
  1274
10121
067b986ee77b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10119
diff changeset
  1275
    "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
  1276
!
78086bf25905 install autoloaded classes (if not already present)
Claus Gittinger <cg@exept.de>
parents: 10106
diff changeset
  1277
78086bf25905 install autoloaded classes (if not already present)
Claus Gittinger <cg@exept.de>
parents: 10106
diff changeset
  1278
installAutoloadedClasses
12372
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  1279
    "install all of my autoloaded classes (if any)"
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  1280
13610
ec7ea708ebd2 changed: #installAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13609
diff changeset
  1281
    |classesToFixClassFileName|
ec7ea708ebd2 changed: #installAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13609
diff changeset
  1282
ec7ea708ebd2 changed: #installAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13609
diff changeset
  1283
    classesToFixClassFileName := OrderedCollection new.
ec7ea708ebd2 changed: #installAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13609
diff changeset
  1284
13592
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  1285
    self autoloaded_classNames do:[:className |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1286
        |cls|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1287
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1288
        "/ 'install as autoloaded: ' errorPrint. className errorPrintCR.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1289
        (cls := Smalltalk classNamed:className) isNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1290
            Error handle:[:ex |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1291
                (self name,' [warning]: failed to install autoloaded: ',className) errorPrintCR.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1292
                (self name,' [info]: reason: ',ex description) errorPrintCR.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1293
                "/ thisContext fullPrintAll.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1294
            ] do:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1295
                cls := Smalltalk
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1296
                    installAutoloadedClassNamed:className
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1297
                    category:'* as yet unknown category *'
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1298
                    package:self package
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1299
                    revision:nil
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1300
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1301
            cls notNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1302
                classesToFixClassFileName add:cls.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1303
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1304
        ].
13592
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  1305
    ].
10113
78086bf25905 install autoloaded classes (if not already present)
Claus Gittinger <cg@exept.de>
parents: 10106
diff changeset
  1306
13610
ec7ea708ebd2 changed: #installAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13609
diff changeset
  1307
    Smalltalk addStartBlock:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1308
        |abbrevs|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1309
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1310
        abbrevs := self abbrevs.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1311
        "/ patch the classFileNames
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1312
        classesToFixClassFileName do:[:cls |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1313
            |entry classFilenameFromAbbreviations|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1314
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1315
            entry := abbrevs at:cls name ifAbsent:nil.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1316
            entry notNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1317
                classFilenameFromAbbreviations := entry fileName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1318
                classFilenameFromAbbreviations notNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1319
                    classFilenameFromAbbreviations := classFilenameFromAbbreviations,'.st'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1320
                    (classFilenameFromAbbreviations ~= cls getClassFilename) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1321
                        cls setClassFilename:classFilenameFromAbbreviations
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1322
                    ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1323
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1324
            ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1325
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1326
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1327
        "/ patch the categories
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1328
        Class withoutUpdatingChangesDo:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1329
            |entry|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1330
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1331
            self classNames do:[:nm |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1332
                |cls|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1333
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1334
                ((cls := Smalltalk at: nm) notNil
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1335
                        and:[ cls isLoaded not
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1336
                        and:[ (entry := abbrevs at:cls name ifAbsent:[nil]) notNil
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1337
                ]]) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1338
                    cls category: (entry category)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1339
                ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1340
            ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1341
        ]
13610
ec7ea708ebd2 changed: #installAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13609
diff changeset
  1342
    ].
ec7ea708ebd2 changed: #installAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13609
diff changeset
  1343
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1344
10113
78086bf25905 install autoloaded classes (if not already present)
Claus Gittinger <cg@exept.de>
parents: 10106
diff changeset
  1345
    "
78086bf25905 install autoloaded classes (if not already present)
Claus Gittinger <cg@exept.de>
parents: 10106
diff changeset
  1346
     stx_libbasic installAutoloadedClasses
12268
b3cd2af642f2 changed: #installAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 12264
diff changeset
  1347
     stx_libhtml installAutoloadedClasses
13592
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  1348
     stx_libtool2 installAutoloadedClasses
10113
78086bf25905 install autoloaded classes (if not already present)
Claus Gittinger <cg@exept.de>
parents: 10106
diff changeset
  1349
    "
78086bf25905 install autoloaded classes (if not already present)
Claus Gittinger <cg@exept.de>
parents: 10106
diff changeset
  1350
78086bf25905 install autoloaded classes (if not already present)
Claus Gittinger <cg@exept.de>
parents: 10106
diff changeset
  1351
    "Created: / 23-10-2006 / 16:02:12 / cg"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1352
    "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
  1353
    "Modified: / 20-08-2011 / 23:32:32 / cg"
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1354
! !
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1355
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1356
!ProjectDefinition class methodsFor:'code generation'!
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1357
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1358
applicationIconFileNameLinux_code
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1359
    ^ String streamContents:[:s |
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1360
        s nextPutLine:'applicationIconFileNameLinux'.
20584
301fc226c29a #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 20582
diff changeset
  1361
        s nextPutLine:'    "Return the name (without suffix) of an icon-file (the app''s icon).'.
20585
472c224d3f6f #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 20584
diff changeset
  1362
        s nextPutLine:'     This is currently unused (will be for desktop definitions)"'.
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1363
        s cr;
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1364
        nextPutLine:'    ^ nil';
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1365
        nextPutLine:'    " ^ self applicationName "'.
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1366
    ].
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1367
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1368
    "
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1369
     self applicationIconFileNameLinux_code
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1370
     stx_libbasic3 applicationIconFileNameLinux_code
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1371
    "
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1372
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1373
    "Created: / 18-08-2006 / 16:21:01 / cg"
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1374
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1375
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1376
applicationIconFileNameOSX_code
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1377
    ^ String streamContents:[:s |
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1378
        s nextPutLine:'applicationIconFileNameOSX'.
20584
301fc226c29a #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 20582
diff changeset
  1379
        s nextPutLine:'    "Return the name (without suffix) of an icon-file (the app''s icon).'.
21569
912c8efa5856 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 21563
diff changeset
  1380
        s nextPutLine:'     This is used to create the osx/Info.plist file"'.
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1381
        s cr;
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1382
        nextPutLine:'    ^ nil';
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1383
        nextPutLine:'    " ^ self applicationName "'.
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1384
    ].
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1385
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1386
    "
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1387
     self applicationIconFileNameOSX_code
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1388
     stx_libbasic3 applicationIconFileNameOSX_code
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1389
    "
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1390
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1391
    "Created: / 18-08-2006 / 16:21:01 / cg"
21569
912c8efa5856 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 21563
diff changeset
  1392
    "Modified: / 24-02-2017 / 11:55:32 / cg"
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1393
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1394
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1395
applicationIconFileNameWindows_code
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1396
    ^ String streamContents:[:s |
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1397
        s nextPutLine:'applicationIconFileNameWindows'.
20584
301fc226c29a #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 20582
diff changeset
  1398
        s nextPutLine:'    "Return the name (without suffix) of an icon-file (the app''s icon).'.
20585
472c224d3f6f #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 20584
diff changeset
  1399
        s nextPutLine:'     This will be included in the rc-resource file for Windowsdeployment"'.
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1400
        s cr;
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1401
        nextPutLine:'    ^ nil';
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1402
        nextPutLine:'    " ^ self applicationName "'.
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1403
    ].
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1404
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1405
    "
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1406
     self applicationIconFileNameWindows_code
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1407
     stx_libbasic3 applicationIconFileNameWindows_code
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1408
    "
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1409
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1410
    "Created: / 18-08-2006 / 16:21:01 / cg"
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1411
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1412
11072
deaddd7ad2ed icon filename - no longer automatic default
sr
parents: 11071
diff changeset
  1413
applicationIconFileName_code
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1414
    "obsolete - replaced by three separate methods as-per-OS"
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1415
    
11072
deaddd7ad2ed icon filename - no longer automatic default
sr
parents: 11071
diff changeset
  1416
    ^ String streamContents:[:s |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1417
        s nextPutLine:'applicationIconFileName'.
20584
301fc226c29a #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 20582
diff changeset
  1418
        s nextPutLine:'    "Return the name (without suffix) of an icon-file (the app''s icon);'.
301fc226c29a #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 20582
diff changeset
  1419
        s nextPutLine:'    "will be included in the rc-resource file"'.
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1420
        s cr;
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1421
        nextPutLine:'    ^ nil';
17294
4f422b041940 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17289
diff changeset
  1422
        nextPutLine:'    " ^ self applicationName "'.
11072
deaddd7ad2ed icon filename - no longer automatic default
sr
parents: 11071
diff changeset
  1423
    ].
deaddd7ad2ed icon filename - no longer automatic default
sr
parents: 11071
diff changeset
  1424
deaddd7ad2ed icon filename - no longer automatic default
sr
parents: 11071
diff changeset
  1425
    "
13873
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1426
     self applicationIconFileName_code
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1427
     stx_libbasic3 applicationIconFileName_code
11072
deaddd7ad2ed icon filename - no longer automatic default
sr
parents: 11071
diff changeset
  1428
    "
deaddd7ad2ed icon filename - no longer automatic default
sr
parents: 11071
diff changeset
  1429
deaddd7ad2ed icon filename - no longer automatic default
sr
parents: 11071
diff changeset
  1430
    "Created: / 18-08-2006 / 16:21:01 / cg"
deaddd7ad2ed icon filename - no longer automatic default
sr
parents: 11071
diff changeset
  1431
!
deaddd7ad2ed icon filename - no longer automatic default
sr
parents: 11071
diff changeset
  1432
10393
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1433
classNamesAndAttributes_codeFor:aSpecArray
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1434
    "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
  1435
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1436
    ^ String streamContents:[:s |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1437
        s nextPutLine:'classNamesAndAttributes'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1438
        s nextPutLine:'    "lists the classes which are to be included in the project.'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1439
        s nextPutLine:'     Each entry in the list may be: a single class-name (symbol),'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1440
        s nextPutLine:'     or an array-literal consisting of class name and attributes.'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1441
        s nextPutLine:'     Attributes are: #autoload or #<os> where os is one of win32, unix,..."'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1442
        s nextPutLine:''.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1443
        s nextPutLine:'    ^ #('.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1444
        s nextPutLine:'        "<className> or (<className> attributes...) in load order"'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1445
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1446
        (self classNamesAndAttributesFromSpecArray:aSpecArray) do:[:entry |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1447
            s spaces:8.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1448
            entry storeArrayElementOn:s.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1449
            s cr.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1450
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1451
        s nextPutLine:'    )'
10393
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1452
    ].
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1453
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1454
    "
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1455
     stx_libbasic3 classNamesAndAttributes_codeFor:(stx_libbasic3 classNamesAndAttributes)
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1456
     exept_expecco classNamesAndAttributes_codeFor:(exept_expecco classNamesAndAttributes)
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1457
    "
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1458
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1459
    "Modified: / 08-08-2006 / 19:24:34 / fm"
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1460
    "Created: / 19-02-2007 / 15:43:27 / cg"
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1461
!
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1462
10064
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1463
classNamesAndAttributes_code_ignoreOldEntries:ignoreOldEntries ignoreOldDefinition:ignoreOldDefinition
10010
69b2dbff964b *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10007
diff changeset
  1464
    "generate method code returning all classes of the project.
69b2dbff964b *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10007
diff changeset
  1465
     Platform attributes are kept from the old definition.
10064
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1466
     If ignoreOldEntries is true, the list is completely recreated;
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1467
     if false, existing entries are preserved.
10010
69b2dbff964b *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10007
diff changeset
  1468
     If ignoreOldDefinition is true, the autoload attribute is set/reset if
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1469
     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
  1470
     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
  1471
20673
1f955f65538d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 20664
diff changeset
  1472
    |newSpec oldSpec ignored|
10393
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1473
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1474
    oldSpec := self classNamesAndAttributesAsSpecArray.
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1475
    ignored := self ignoredClassNames asSet.
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1476
    newSpec := OrderedCollection new.
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1477
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1478
    ignoreOldEntries ifFalse:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1479
        oldSpec do:[:oldEntry |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1480
            |newEntry className cls |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1481
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1482
            newEntry := oldEntry copy.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1483
            className := newEntry first.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1484
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1485
            (ignored includes:className) ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1486
                cls := Smalltalk classNamed:className.
14354
4a571b9eb43c changed: #classNamesAndAttributes_code_ignoreOldEntries:ignoreOldDefinition:
Stefan Vogel <sv@exept.de>
parents: 14351
diff changeset
  1487
                cls notNil ifTrue:[
4a571b9eb43c changed: #classNamesAndAttributes_code_ignoreOldEntries:ignoreOldDefinition:
Stefan Vogel <sv@exept.de>
parents: 14351
diff changeset
  1488
                    ignoreOldDefinition ifTrue:[
4a571b9eb43c changed: #classNamesAndAttributes_code_ignoreOldEntries:ignoreOldDefinition:
Stefan Vogel <sv@exept.de>
parents: 14351
diff changeset
  1489
                        cls isLoaded ifFalse:[
4a571b9eb43c changed: #classNamesAndAttributes_code_ignoreOldEntries:ignoreOldDefinition:
Stefan Vogel <sv@exept.de>
parents: 14351
diff changeset
  1490
                            (newEntry includes:#autoload) ifFalse:[
4a571b9eb43c changed: #classNamesAndAttributes_code_ignoreOldEntries:ignoreOldDefinition:
Stefan Vogel <sv@exept.de>
parents: 14351
diff changeset
  1491
                                newEntry := newEntry copyWith:#autoload.
4a571b9eb43c changed: #classNamesAndAttributes_code_ignoreOldEntries:ignoreOldDefinition:
Stefan Vogel <sv@exept.de>
parents: 14351
diff changeset
  1492
                            ].
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1493
                        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1494
                    ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1495
                    "JV @ 2010-06-19
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1496
                     Force merge default class attributes with existing ones"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1497
                    newEntry := self mergeDefaultClassAttributesFor: cls with: newEntry.
20673
1f955f65538d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 20664
diff changeset
  1498
                    newSpec add:newEntry.   
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1499
                ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1500
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1501
        ].
10393
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1502
    ].
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1503
    self searchForClasses do:[:eachClass |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1504
        |className attributes oldSpecEntry oldAttributes newEntry|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1505
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
  1506
        eachClass isJavaClass ifFalse:[
0875f5d7c9ce Care for Java classes that are part of a Smalltalk/X package.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16786
diff changeset
  1507
            className := eachClass name.
0875f5d7c9ce Care for Java classes that are part of a Smalltalk/X package.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16786
diff changeset
  1508
            (ignored includes:className) ifFalse:[
0875f5d7c9ce Care for Java classes that are part of a Smalltalk/X package.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16786
diff changeset
  1509
                oldSpecEntry := oldSpec detect:[:entry | entry first = className] ifNone:nil.
0875f5d7c9ce Care for Java classes that are part of a Smalltalk/X package.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16786
diff changeset
  1510
0875f5d7c9ce Care for Java classes that are part of a Smalltalk/X package.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16786
diff changeset
  1511
                (ignoreOldEntries or:[oldSpecEntry isNil]) ifTrue:[
0875f5d7c9ce Care for Java classes that are part of a Smalltalk/X package.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16786
diff changeset
  1512
                    (eachClass isLoaded not or:[eachClass isPrivate not]) ifTrue:[
0875f5d7c9ce Care for Java classes that are part of a Smalltalk/X package.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16786
diff changeset
  1513
                        (self additionalClassNamesAndAttributes includes:className) ifFalse:[
0875f5d7c9ce Care for Java classes that are part of a Smalltalk/X package.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16786
diff changeset
  1514
                            (oldSpecEntry size > 1) ifTrue:[
0875f5d7c9ce Care for Java classes that are part of a Smalltalk/X package.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16786
diff changeset
  1515
                                oldAttributes := oldSpecEntry copyFrom:2.
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1516
                            ].
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
  1517
0875f5d7c9ce Care for Java classes that are part of a Smalltalk/X package.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16786
diff changeset
  1518
                            ignoreOldDefinition ifTrue:[
0875f5d7c9ce Care for Java classes that are part of a Smalltalk/X package.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16786
diff changeset
  1519
                                "take autoload attribute from classes state in the image"
0875f5d7c9ce Care for Java classes that are part of a Smalltalk/X package.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16786
diff changeset
  1520
                                oldAttributes notNil ifTrue:[
0875f5d7c9ce Care for Java classes that are part of a Smalltalk/X package.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16786
diff changeset
  1521
                                    attributes := oldAttributes copyWithout:#autoload.
0875f5d7c9ce Care for Java classes that are part of a Smalltalk/X package.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16786
diff changeset
  1522
                                ] ifFalse:[
0875f5d7c9ce Care for Java classes that are part of a Smalltalk/X package.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16786
diff changeset
  1523
                                    attributes := #()
0875f5d7c9ce Care for Java classes that are part of a Smalltalk/X package.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16786
diff changeset
  1524
                                ].
0875f5d7c9ce Care for Java classes that are part of a Smalltalk/X package.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16786
diff changeset
  1525
                                eachClass isLoaded ifFalse:[
0875f5d7c9ce Care for Java classes that are part of a Smalltalk/X package.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16786
diff changeset
  1526
                                    attributes := attributes copyWith:#autoload.
0875f5d7c9ce Care for Java classes that are part of a Smalltalk/X package.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16786
diff changeset
  1527
                                ].
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1528
                            ] ifFalse:[
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
  1529
                                "keep any existing attribute"
0875f5d7c9ce Care for Java classes that are part of a Smalltalk/X package.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16786
diff changeset
  1530
                                oldAttributes notNil ifTrue:[
0875f5d7c9ce Care for Java classes that are part of a Smalltalk/X package.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16786
diff changeset
  1531
                                    attributes := oldAttributes.
0875f5d7c9ce Care for Java classes that are part of a Smalltalk/X package.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16786
diff changeset
  1532
                                ] ifFalse:[
0875f5d7c9ce Care for Java classes that are part of a Smalltalk/X package.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16786
diff changeset
  1533
                                    attributes := eachClass isLoaded ifTrue:[ #() ] ifFalse:[ #(autoload) ].
0875f5d7c9ce Care for Java classes that are part of a Smalltalk/X package.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16786
diff changeset
  1534
                                ].
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1535
                            ].
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
  1536
                            "JV @ 2010-06-19
22333
3c675c8b5266 #DOCUMENTATION by mawalch
mawalch
parents: 22186
diff changeset
  1537
                             Support for additional class attributes and programming language attribute"
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
  1538
                            attributes := self mergeDefaultClassAttributesFor: eachClass with: attributes.
0875f5d7c9ce Care for Java classes that are part of a Smalltalk/X package.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16786
diff changeset
  1539
0875f5d7c9ce Care for Java classes that are part of a Smalltalk/X package.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16786
diff changeset
  1540
                            newEntry := Array with:className.
0875f5d7c9ce Care for Java classes that are part of a Smalltalk/X package.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16786
diff changeset
  1541
                            attributes notEmptyOrNil ifTrue:[
0875f5d7c9ce Care for Java classes that are part of a Smalltalk/X package.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16786
diff changeset
  1542
                                newEntry := newEntry , attributes.
0875f5d7c9ce Care for Java classes that are part of a Smalltalk/X package.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16786
diff changeset
  1543
                            ].
20673
1f955f65538d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 20664
diff changeset
  1544
                            newSpec add:newEntry.   
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
  1545
                        ]
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1546
                    ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1547
                ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1548
            ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1549
        ]
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1550
    ].
17109
7c49508fa1bf class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  1551
    ^ self classNamesAndAttributes_codeFor:newSpec
10393
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1552
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1553
    "
10393
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1554
     stx_libbasic3 classNamesAndAttributes_code_ignoreOldEntries:false ignoreOldDefinition:true
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1555
     exept_expecco classNamesAndAttributes_code_ignoreOldEntries:false ignoreOldDefinition:true
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1556
    "
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1557
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1558
    "Modified: / 08-08-2006 / 19:24:34 / fm"
10064
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1559
    "Created: / 10-10-2006 / 22:00:50 / cg"
13635
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  1560
    "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
  1561
    "Modified: / 30-07-2014 / 20:40:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
22333
3c675c8b5266 #DOCUMENTATION by mawalch
mawalch
parents: 22186
diff changeset
  1562
    "Modified (comment): / 08-11-2017 / 17:59:04 / mawalch"
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1563
!
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1564
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1565
companyName_code
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1566
    "generate code that answers the company name."
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1567
12541
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1568
    ^ self companyName_codeFor:self companyName
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1569
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1570
    "
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1571
     self companyName_code
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1572
     stx_libbasic3 companyName_code
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1573
    "
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1574
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1575
    "Created: / 18-08-2006 / 16:20:42 / cg"
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1576
!
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1577
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1578
companyName_codeFor:aString
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1579
    "generate code that answers aString as the company name."
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1580
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1581
    ^ String streamContents:[:s |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1582
        s nextPutLine:'companyName'.
16222
15aa39f0f5cb Fix in ProjectDefinition - use up-to-date comment when (re)generating methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16213
diff changeset
  1583
        s nextPutAll: '    "'; nextPutAll: (self class superclass lookupMethodFor: #companyName) comment; nextPutLine:'"'.
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1584
        s cr; nextPutLine:'    ^ ',aString storeString.
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1585
    ].
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1586
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1587
    "
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1588
     self companyName_code
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1589
     stx_libbasic3 companyName_code
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1590
    "
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1591
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1592
    "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
  1593
    "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
  1594
!
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1595
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1596
compileDescriptionMethods
16682
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  1597
    (self isAbstract) ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1598
        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
  1599
    ].
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1600
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1601
    self
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1602
        forEachMethodsCodeToCompileDo:[:code :category |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1603
            self compile:code categorized:category
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1604
        ].
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1605
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1606
"/    self instAndClassMethodsDo:[:m | m package:self package].
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1607
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1608
    "
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1609
     DapasXProject compileDescriptionMethods
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1610
     DapasX_Datenbasis compileDescriptionMethods
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1611
     bosch_dapasx_interactiver_editor compileDescriptionMethods
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1612
     stx_libbasic compileDescriptionMethods
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1613
    "
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1614
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1615
    "Created: / 09-08-2006 / 18:00:31 / fm"
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1616
    "Modified: / 05-09-2006 / 13:46:29 / cg"
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1617
!
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1618
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1619
description_code
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1620
    ^ String streamContents:[:s |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1621
        s nextPutLine:'description'.
16222
15aa39f0f5cb Fix in ProjectDefinition - use up-to-date comment when (re)generating methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16213
diff changeset
  1622
        s nextPutAll: '    "'; nextPutAll: (self class superclass lookupMethodFor: #description) comment; nextPutLine:'"'.
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1623
        s cr; nextPutLine:'    ^ ',self description asString storeString.
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1624
    ].
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1625
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1626
    "
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1627
     self description_code
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1628
     stx_libbasic3 description_code
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1629
    "
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1630
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1631
    "Created: / 17-08-2006 / 21:24:01 / cg"
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1632
    "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
  1633
    "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
  1634
!
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1635
11386
5e4e1acf7242 Fix #allPrerequisites to return prerequisites that are
Stefan Vogel <sv@exept.de>
parents: 11383
diff changeset
  1636
effectiveSubProjects
21259
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1637
    "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
  1638
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1639
    ^ self effectiveSubProjects:OperatingSystem platformName
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1640
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1641
    "Modified: / 17-01-2017 / 16:31:42 / stefan"
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1642
!
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1643
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1644
effectiveSubProjects:osSymbol
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1645
    "get the subProjects, that are not excluded.
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1646
     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
  1647
5e4e1acf7242 Fix #allPrerequisites to return prerequisites that are
Stefan Vogel <sv@exept.de>
parents: 11383
diff changeset
  1648
    |subProjects|
5e4e1acf7242 Fix #allPrerequisites to return prerequisites that are
Stefan Vogel <sv@exept.de>
parents: 11383
diff changeset
  1649
21259
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1650
    subProjects := (self subProjects, self includedInSubProjects) collect:[:eachLine|
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1651
                        eachLine isString ifTrue:[
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1652
                            eachLine
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1653
                        ] ifFalse:[eachLine second = osSymbol ifTrue:[
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1654
                            eachLine first.
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1655
                        ] ifFalse:[
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1656
                            nil.
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1657
                        ]].
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1658
                   ] as:OrderedSet.
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1659
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1660
    subProjects remove:self package ifAbsent:[].
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1661
    subProjects remove:nil ifAbsent:[].
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1662
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1663
    self excludedFromSubProjects do:[:eachLine|
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1664
        eachLine isString ifTrue:[
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1665
            subProjects remove:eachLine ifAbsent:[]. 
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1666
        ] ifFalse:[eachLine second = osSymbol ifTrue:[
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1667
            subProjects remove:eachLine first ifAbsent:[].
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1668
        ]].
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1669
    ].
11386
5e4e1acf7242 Fix #allPrerequisites to return prerequisites that are
Stefan Vogel <sv@exept.de>
parents: 11383
diff changeset
  1670
5e4e1acf7242 Fix #allPrerequisites to return prerequisites that are
Stefan Vogel <sv@exept.de>
parents: 11383
diff changeset
  1671
    ^ subProjects
21259
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1672
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1673
    "Created: / 17-01-2017 / 16:16:03 / stefan"
11386
5e4e1acf7242 Fix #allPrerequisites to return prerequisites that are
Stefan Vogel <sv@exept.de>
parents: 11383
diff changeset
  1674
!
5e4e1acf7242 Fix #allPrerequisites to return prerequisites that are
Stefan Vogel <sv@exept.de>
parents: 11383
diff changeset
  1675
12425
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  1676
excludedFromPreRequisites_code
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  1677
    "generate the code of the #excludedFromPreRequisites method"
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  1678
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  1679
    ^ String streamContents:[:s |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1680
        s nextPutLine:'excludedFromPreRequisites'.
16222
15aa39f0f5cb Fix in ProjectDefinition - use up-to-date comment when (re)generating methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16213
diff changeset
  1681
        s nextPutAll: '    "'; nextPutAll: (self class superclass lookupMethodFor: #excludedFromPreRequisites) comment; nextPutLine:'"'.
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1682
        s nextPutLine:''.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1683
        s nextPutLine:'    ^ #('.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1684
        s nextPutLine:'    )'
12425
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  1685
    ].
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
  1686
15aa39f0f5cb Fix in ProjectDefinition - use up-to-date comment when (re)generating methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16213
diff changeset
  1687
    "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
  1688
!
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  1689
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1690
extensionMethodNames_code
10064
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1691
    ^ self extensionMethodNames_code_ignoreOldEntries:true
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1692
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1693
    "
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1694
     self extensionMethodNames_code
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1695
    "
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1696
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1697
    "Created: / 17-08-2006 / 21:21:48 / cg"
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1698
    "Modified: / 10-10-2006 / 22:02:42 / cg"
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1699
!
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1700
15005
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1701
extensionMethodNames_code_For:extensionMethodNames
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1702
    ^ String streamContents:[:s |
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1703
        |spec|
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1704
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1705
        s nextPutLine:'extensionMethodNames'.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1706
        s nextPutLine:'    "lists the extension methods which are to be included in the project.'.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1707
        s nextPutLine:'     Entries are pairwise elements, consisting of class-name and selector."'.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1708
        s nextPutLine:''.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1709
        s nextPutLine:'    ^ #('.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1710
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1711
        spec := extensionMethodNames pairWiseCollect:[:className :selector | className -> selector ].
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1712
        spec do:[:entry |
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1713
            |mclassName mselector|
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1714
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1715
            mclassName := entry key asSymbol.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1716
            (mclassName endsWith:' class') ifTrue:[
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1717
                mclassName := mclassName asString.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1718
            ].
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1719
            mselector := entry value asSymbol.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1720
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1721
            s spaces:8.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1722
            mclassName storeArrayElementOn:s.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1723
            s space.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1724
            mselector storeArrayElementOn:s.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1725
            s cr.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1726
        ].
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1727
        s nextPutLine:'    )'
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1728
    ].
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1729
!
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1730
10064
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1731
extensionMethodNames_code_ignoreOldEntries:ignoreOldEntries
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1732
    ^ String streamContents:[:s |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1733
        |oldSpec|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1734
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1735
        s nextPutLine:'extensionMethodNames'.
16222
15aa39f0f5cb Fix in ProjectDefinition - use up-to-date comment when (re)generating methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16213
diff changeset
  1736
        s nextPutAll: '    "'; nextPutAll: (self class superclass lookupMethodFor: #extensionMethodNames) comment; nextPutLine:'"'.
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1737
        s nextPutLine:''.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1738
        s nextPutLine:'    ^ #('.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1739
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1740
        oldSpec := self extensionMethodNames pairWiseCollect:[:className :selector | className -> selector ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1741
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1742
        ignoreOldEntries ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1743
            oldSpec do:[:entry |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1744
                |mclassName mselector|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1745
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1746
                mclassName := entry key asSymbol.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1747
                (mclassName endsWith:' class') ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1748
                    mclassName := mclassName asString.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1749
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1750
                mselector := entry value asSymbol.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1751
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1752
                s spaces:8.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1753
                mclassName storeArrayElementOn:s.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1754
                s space.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1755
                mselector storeArrayElementOn:s.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1756
                s cr.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1757
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1758
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1759
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1760
        self searchForExtensions do:[:eachMethod |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1761
            |attributes oldSpecEntry mclassName mselector|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1762
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1763
            mclassName := eachMethod mclass name.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1764
            mselector := eachMethod selector.
14859
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  1765
            "JV@2012-09-07: Do not list Java methods in extensionMethodNames.
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  1766
             They are loaded lazily by JavaClassReader and if listed here,
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  1767
             they would cause an error if the package is loaded from source.
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  1768
             Sort of a HACK, indeed"
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  1769
            eachMethod mclass theNonMetaclass isJavaClass ifFalse:[
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  1770
                oldSpecEntry := oldSpec detect:[:entry | entry key = mclassName and:[ entry value = mselector]] ifNone:nil.
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  1771
                (ignoreOldEntries or:[ oldSpecEntry isNil]) ifTrue:[
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  1772
                    s spaces:8.
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  1773
                    mclassName storeArrayElementOn:s.
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  1774
                    s space.
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  1775
                    mselector storeArrayElementOn:s.
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  1776
                    s cr.
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  1777
                ]
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  1778
            ].
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1779
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1780
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1781
        s nextPutLine:'    )'
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1782
    ].
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1783
10106
c26879b72dfe extensionlist generator was buggy
Claus Gittinger <cg@exept.de>
parents: 10104
diff changeset
  1784
    "
c26879b72dfe extensionlist generator was buggy
Claus Gittinger <cg@exept.de>
parents: 10104
diff changeset
  1785
     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
  1786
     stx_libjava extensionMethodNames_code_ignoreOldEntries:false
10106
c26879b72dfe extensionlist generator was buggy
Claus Gittinger <cg@exept.de>
parents: 10104
diff changeset
  1787
     stx_libtool extensionMethodNames_code_ignoreOldEntries:true
c26879b72dfe extensionlist generator was buggy
Claus Gittinger <cg@exept.de>
parents: 10104
diff changeset
  1788
    "
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1789
10064
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1790
    "Created: / 10-10-2006 / 22:02:36 / cg"
10106
c26879b72dfe extensionlist generator was buggy
Claus Gittinger <cg@exept.de>
parents: 10104
diff changeset
  1791
    "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
  1792
    "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
  1793
!
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1794
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1795
forEachContentsMethodsCodeToCompileDo:aTwoArgBlock ignoreOldDefinition:ignoreOldDefinition
15052
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1796
    "generate code for each contents-specifying method
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1797
     (classesAndAttributes, extensionMethodNames, etc.),
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1798
     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
  1799
     If ignoreOldDefinition is true, new code is generated (class/method scan);
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1800
     otherwise, new items are added to the existing lists"
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1801
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1802
    aTwoArgBlock
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1803
        value:(self classNamesAndAttributes_code_ignoreOldEntries:ignoreOldDefinition ignoreOldDefinition:ignoreOldDefinition)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1804
        value:'description - contents'.
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1805
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1806
    aTwoArgBlock
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1807
        value: (self extensionMethodNames_code_ignoreOldEntries:ignoreOldDefinition)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1808
        value: 'description - contents'.
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1809
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1810
    aTwoArgBlock
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1811
        value: self mandatoryPreRequisites_code
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1812
        value: 'description'.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1813
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1814
    aTwoArgBlock
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1815
        value: self referencedPreRequisites_code
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1816
        value: 'description'.
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1817
16571
e7bc644361e4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16554
diff changeset
  1818
    (self class includesSelector:#excludedFromPreRequisites) ifFalse:[
14812
bdbf34a42482 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14809
diff changeset
  1819
        aTwoArgBlock
bdbf34a42482 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14809
diff changeset
  1820
            value: self excludedFromPreRequisites_code
bdbf34a42482 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14809
diff changeset
  1821
            value: 'description'.
bdbf34a42482 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14809
diff changeset
  1822
    ].
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1823
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  1824
    "/ JV:  No, subProjects **should not** be automatically generated.
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  1825
    "/      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
  1826
    "/      subProjects only if there's no such method yet.
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  1827
    (self class methodDictionary includesKey: #subProjects) ifFalse:[
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  1828
        aTwoArgBlock
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  1829
            value: self subProjects_code
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  1830
            value: 'description'.
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  1831
    ].
14988
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  1832
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1833
    (self monticelloPackageName notNil and:[self respondsTo:#monticelloTimestamps_code]) ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1834
        aTwoArgBlock
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1835
            value: self monticelloTimestamps_code
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1836
            value: 'description - monticello'.
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1837
    ].
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1838
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  1839
    "Modified: / 25-11-2013 / 13:56:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1840
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1841
16682
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  1842
forEachDescriptionMethodsCodeToCompileDo:aTwoArgBlock ignoreOldDefinition:ignoreOldDefinition
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  1843
    "generate code for descriptive methods,
15052
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1844
     and evaluate aTwoArgBlock on it, passing in the code and the method's category.
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1845
     If ignoreOldDefinition is true, new code is generated (class/method scan);
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1846
     otherwise, new items are added to the existing lists"
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1847
13873
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1848
    "/  code like:
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1849
    "/
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1850
    "/ (self class includesSelector:#productName) ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1851
    "/     aTwoArgBlock
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1852
    "/         value: self productName_code
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1853
    "/         value: 'description - project information'.
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1854
    "/ ].
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1855
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1856
    #(
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1857
        (productName productName_code)
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1858
        (description description_code)
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1859
        (companyName companyName_code)
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1860
        (legalCopyright legalCopyright_code)
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1861
    ) pairsDo:[:selector :codeMethodSelector |
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1862
        (self class includesSelector:selector) ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1863
            aTwoArgBlock
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1864
                value: (self perform:codeMethodSelector)
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1865
                value: 'description - project information'.
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1866
        ].
11072
deaddd7ad2ed icon filename - no longer automatic default
sr
parents: 11071
diff changeset
  1867
    ].
16682
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  1868
!
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  1869
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  1870
forEachMethodsCodeToCompileDo:aTwoArgBlock
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  1871
    "update code for each method (contents plus version info),
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  1872
     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
  1873
     New items are added to the existing lists"
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  1874
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  1875
    self forEachMethodsCodeToCompileDo:aTwoArgBlock ignoreOldDefinition:false
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  1876
!
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  1877
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  1878
forEachMethodsCodeToCompileDo:aTwoArgBlock ignoreOldDefinition:ignoreOldDefinition
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  1879
    "generate code for each method (contents plus version info),
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  1880
     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
  1881
     If ignoreOldDefinition is true, new code is generated (class/method scan);
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  1882
     otherwise, new items are added to the existing lists"
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  1883
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  1884
    self
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  1885
        forEachContentsMethodsCodeToCompileDo:aTwoArgBlock
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  1886
        ignoreOldDefinition:ignoreOldDefinition.
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  1887
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  1888
    self
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  1889
        forEachDescriptionMethodsCodeToCompileDo:aTwoArgBlock
16682
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  1890
        ignoreOldDefinition:ignoreOldDefinition.
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1891
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1892
    (self monticelloPackageName notNil and:[self respondsTo:#monticelloTimestamps_code]) ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1893
        aTwoArgBlock
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1894
            value: self monticelloTimestamps_code
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1895
            value: 'description - monticello'.
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1896
    ].
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1897
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1898
    "Created: / 18-08-2006 / 16:22:37 / cg"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1899
    "Modified: / 09-11-2010 / 18:41:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
13873
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1900
    "Modified: / 21-12-2011 / 16:42:41 / cg"
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1901
!
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1902
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1903
legalCopyright_code
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1904
    ^ String streamContents:[:s |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1905
        s nextPutLine:'legalCopyright'.
16222
15aa39f0f5cb Fix in ProjectDefinition - use up-to-date comment when (re)generating methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16213
diff changeset
  1906
        s nextPutAll: '    "'; nextPutAll: (self class superclass lookupMethodFor: #legalCopyright) comment; nextPutLine:'"'.
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1907
        s cr; nextPutLine:'    ^ ', self legalCopyright storeString.
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1908
    ].
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1909
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1910
    "
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1911
     self legalCopyright_code
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1912
     stx_libbasic3 legalCopyright_code
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1913
    "
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1914
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1915
    "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
  1916
    "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
  1917
!
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1918
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1919
mandatoryPreRequisites_code
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1920
    "generate the code of the #mandatoryPreRequisites method"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1921
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1922
    |preRequisites|
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1923
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1924
    preRequisites := self searchForPreRequisites first.
20527
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  1925
    preRequisites removeAllKeys:self excludedFromMandatoryPreRequisites ifAbsent:[].
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1926
    preRequisites removeAllKeys:self excludedFromPreRequisites ifAbsent:[].
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1927
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1928
    ^ String streamContents:[:s |
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1929
        s nextPutLine:'mandatoryPreRequisites'.
16222
15aa39f0f5cb Fix in ProjectDefinition - use up-to-date comment when (re)generating methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16213
diff changeset
  1930
        s nextPutAll: '    "'; nextPutAll: (self class superclass lookupMethodFor: #mandatoryPreRequisites) comment; nextPutLine:'"'.
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1931
        s nextPutLine:''.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1932
        s nextPutLine:'    ^ #('.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1933
        preRequisites keys asSortedCollection do:[:eachPackageID |
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1934
            |reason|
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1935
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1936
            s spaces:8.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1937
            eachPackageID asSymbol storeOn:s.
20522
3f050234feeb #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 20503
diff changeset
  1938
            reason := preRequisites at:eachPackageID ifAbsent:[nil].
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1939
            reason notEmptyOrNil ifTrue:[
16640
052b33c5533d class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16619
diff changeset
  1940
                s nextPutAll:'    "'; nextPutAll:reason anElement; nextPut:$".
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1941
            ].
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1942
            s cr.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1943
        ].
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1944
        s nextPutLine:'    )'
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1945
    ].
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1946
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1947
    "
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1948
     demo_demoApp1 mandatoryPreRequisites_code
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1949
     stx_libbasic3 mandatoryPreRequisites_code
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1950
     stx_libtool2 mandatoryPreRequisites_code
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1951
    "
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1952
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1953
    "Modified: / 08-08-2006 / 19:24:34 / fm"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1954
    "Created: / 17-08-2006 / 21:28:09 / cg"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1955
    "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
  1956
    "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
  1957
!
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1958
13873
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1959
productInstallDirBaseName_code
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1960
    ^ String streamContents:[:s |
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1961
        s nextPutLine:'productInstallDirBaseName'.
16222
15aa39f0f5cb Fix in ProjectDefinition - use up-to-date comment when (re)generating methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16213
diff changeset
  1962
        s nextPutAll: '    "'; nextPutAll: (self class superclass lookupMethodFor: #productInstallDirBaseName) comment; nextPutLine:'"'.
13873
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1963
        s cr;
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1964
        nextPutLine:'    ^ (self package asCollectionOfSubstringsSeparatedByAny:'':/'') last'.
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1965
    ].
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1966
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1967
    "
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1968
     ApplicationDefinition productInstallDirBaseName_code
13873
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1969
     stx_libbasic3 productInstallDirBaseName_code
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1970
     stx_clients_Clock_QlockTwoWatchApplication productInstallDirBaseName_code
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1971
    "
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1972
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1973
    "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
  1974
    "Modified: / 05-03-2014 / 17:00:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
13873
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1975
!
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1976
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1977
productName_code
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1978
    "generate code that answers the product name."
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1979
12541
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1980
    ^ self productName_codeFor:(self productName)
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1981
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1982
    "
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1983
     self productName_code
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1984
     stx_libbasic3 productName_code
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1985
    "
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1986
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1987
    "Created: / 18-08-2006 / 16:14:19 / cg"
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1988
!
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1989
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1990
productName_codeFor:aString
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1991
    "generate code that answers aString as the product name."
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1992
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1993
    ^ String streamContents:[:s |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1994
        s nextPutLine:'productName'.
16222
15aa39f0f5cb Fix in ProjectDefinition - use up-to-date comment when (re)generating methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16213
diff changeset
  1995
        s nextPutAll: '    "'; nextPutAll: (self class superclass lookupMethodFor: #productName) comment; nextPutLine:'"'.
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1996
        s cr; nextPutLine:'    ^ ',aString storeString.
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1997
    ].
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1999
    "
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  2000
     self productName_code
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  2001
     stx_libbasic3 productName_code
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  2002
    "
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  2003
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  2004
    "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
  2005
    "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
  2006
!
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2007
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2008
referencedPreRequisites_code
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2009
    "generate the code of the #referencedPreRequisites method"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2010
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2011
    |preRequisitesColl preRequisites|
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2012
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2013
    preRequisitesColl := self searchForPreRequisites.
14885
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  2014
    preRequisites := preRequisitesColl second.
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  2015
    preRequisites
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2016
        removeAllKeys:self excludedFromPreRequisites ifAbsent:[];
20527
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2017
        removeAllKeys:self excludedFromRequiredPreRequisites ifAbsent:[];
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2018
        removeAllKeys:preRequisitesColl first keys ifAbsent:[].  "remove the mandatory prerequisites"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2019
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2020
    ^ String streamContents:[:s |
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2021
        s nextPutLine:'referencedPreRequisites'.
16222
15aa39f0f5cb Fix in ProjectDefinition - use up-to-date comment when (re)generating methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16213
diff changeset
  2022
        s nextPutAll: '    "'; nextPutAll: (self class superclass lookupMethodFor: #referencedPreRequisites) comment; nextPutLine:'"'.
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2023
        s nextPutLine:''.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2024
        s nextPutLine:'    ^ #('.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2025
        preRequisites keys asSortedCollection do:[:eachPackageID |
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2026
            |reason|
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2027
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2028
            s spaces:8.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2029
            eachPackageID asSymbol storeOn:s.
20522
3f050234feeb #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 20503
diff changeset
  2030
            reason := preRequisites at:eachPackageID ifAbsent:[nil].
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2031
            reason notEmptyOrNil ifTrue:[
16640
052b33c5533d class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16619
diff changeset
  2032
                s nextPutAll:'    "'; nextPutAll:reason anElement; nextPut:$".
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2033
            ].
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2034
            s cr.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2035
        ].
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2036
        s nextPutLine:'    )'
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2037
    ].
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2038
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2039
    "
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2040
     demo_demoApp1 referencedPreRequisites_code
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2041
     stx_libbasic3 referencedPreRequisites_code
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2042
     stx_libtool2 referencedPreRequisites_code
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2043
    "
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2044
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2045
    "Modified: / 08-08-2006 / 19:24:34 / fm"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2046
    "Created: / 17-08-2006 / 21:28:09 / cg"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2047
    "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
  2048
    "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
  2049
!
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2050
14988
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  2051
subProjects_code
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  2052
    "generate the code of the #subProjects method.
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  2053
     Returns nil if no such code is needed (because there are none)"
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  2054
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  2055
    ^ String streamContents:[:s |
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  2056
        s nextPutLine:'subProjects'.
16222
15aa39f0f5cb Fix in ProjectDefinition - use up-to-date comment when (re)generating methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16213
diff changeset
  2057
        s nextPutAll: '    "'; nextPutAll: (self class superclass lookupMethodFor: #subProjects) comment; nextPutLine:'"'.
14988
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  2058
        s nextPutLine:''.
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  2059
        s nextPutLine:'    ^ #('.
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  2060
        ProjectDefinition allSubclassesDo:[:each |
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  2061
            (each package startsWith:(self package,'/')) ifTrue:[
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  2062
                s nextPutLine:'        #''',each package,''''.
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  2063
            ]
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  2064
        ].
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  2065
        s nextPutLine:'    )'
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  2066
    ].
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
  2067
15aa39f0f5cb Fix in ProjectDefinition - use up-to-date comment when (re)generating methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16213
diff changeset
  2068
    "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
  2069
!
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  2070
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2071
svnRevisionNr_code: revisionNrOrNil
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2072
    ^ String streamContents:[:s |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2073
        s nextPutLine:'svnRevisionNr'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2074
        s nextPutLine:'    "Return a SVN revision number of myself.'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2075
        s nextPutLine:'     This number is updated after a commit"'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2076
        s cr;
14859
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2077
        nextPutLine:'    ^ "$SVN-Revision:"''', ('%-16s' printf: (Array with: revisionNrOrNil printString)) , '''"$"'.
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2078
    ].
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2079
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2080
    "
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2081
     self svnRevisionNr_code
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2082
     stx_libbasic3 svnRevisionNr_code
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2083
    "
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2084
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2085
    "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
  2086
    "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
  2087
    "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
  2088
! !
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  2089
9569
b0bf179c9bf5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9559
diff changeset
  2090
!ProjectDefinition class methodsFor:'defaults'!
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2091
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  2092
applicationTypes
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2093
    GUIApplicationType isNil ifTrue:[self initialize].
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2094
    ^ Array with:GUIApplicationType with:NonGUIApplicationType
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  2095
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2096
    "
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  2097
     self applicationTypes
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2098
    "
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  2099
!
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  2100
10434
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
  2101
defaultCategory
10466
aa61cdb54299 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10434
diff changeset
  2102
    ^'* Projects & Packages *'
10434
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
  2103
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
  2104
    "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
  2105
!
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
  2106
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2107
defaultProjectType
9745
82c6afc86a68 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9733
diff changeset
  2108
    ^ self libraryTypes first
82c6afc86a68 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9733
diff changeset
  2109
    "/ ^ self applicationTypes first
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2110
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2111
    "Created: / 23-08-2006 / 14:27:32 / cg"
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2112
!
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2113
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2114
defaultProjectTypeForGUIApplication
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2115
    ^ GUIApplicationType
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2116
!
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2117
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2118
defaultProjectTypeForNonGUIApplication
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2119
    ^ NonGUIApplicationType
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2120
!
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  2121
16541
d258a79cee6e class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16540
diff changeset
  2122
folderForSubApplicationsType
d258a79cee6e class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16540
diff changeset
  2123
    ^ FolderForSubApplicationsType
d258a79cee6e class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16540
diff changeset
  2124
!
d258a79cee6e class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16540
diff changeset
  2125
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2126
guiApplicationType
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2127
    ^ GUIApplicationType
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2128
!
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2129
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2130
libraryType
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2131
    ^ LibraryType
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2132
!
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2133
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  2134
libraryTypes
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2135
    LibraryType isNil ifTrue:[self initialize].
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2136
    ^ Array with:LibraryType
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2137
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2138
    "
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  2139
     self libraryTypes
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2140
    "
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2141
!
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2142
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2143
nonGuiApplicationType
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2144
    ^ NonGUIApplicationType
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  2145
!
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  2146
12331
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  2147
projectTypeSelectors
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  2148
    "a list of possible project type selectors"
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  2149
16541
d258a79cee6e class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16540
diff changeset
  2150
    ^ #( libraryType guiApplicationType nonGuiApplicationType folderForSubApplicationsType )
12331
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  2151
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  2152
    "
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  2153
     self libraryType
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  2154
     self guiApplicationType
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  2155
     self nonGuiApplicationType
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  2156
    "
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  2157
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  2158
    "Created: / 23-08-2006 / 14:27:32 / cg"
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  2159
!
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  2160
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  2161
projectTypes
16541
d258a79cee6e class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16540
diff changeset
  2162
    "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
  2163
d258a79cee6e class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16540
diff changeset
  2164
    ^ self libraryTypes , self applicationTypes , { FolderForSubApplicationsType }
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  2165
12331
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  2166
    "
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  2167
     self projectTypes
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  2168
    "
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  2169
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  2170
    "Created: / 23-08-2006 / 14:27:32 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2171
! !
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2172
9569
b0bf179c9bf5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9559
diff changeset
  2173
!ProjectDefinition class methodsFor:'description'!
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2174
20527
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2175
excludedFromMandatoryPreRequisites
9983
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  2176
    "list packages which are to be explicitely excluded from the automatic constructed
20527
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2177
     mandatory prerequisites list. 
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2178
     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
  2179
     my classes is considered to be a prerequisite package."
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2180
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2181
    ^ #()
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2182
!
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2183
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2184
excludedFromPreRequisites
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2185
    "obsolete; temporarily, this is still called for, but will eventually vanish.
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2186
    
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2187
     List packages which are to be explicitely excluded from the automatic constructed
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2188
     prerequisites lists (both). 
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2189
     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
  2190
     my classes is considered to be a prerequisite package."
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2191
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2192
    ^ #()
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2193
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2194
    "Modified: / 17-08-2006 / 19:48:59 / cg"
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2195
!
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2196
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2197
excludedFromRequiredPreRequisites
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2198
    "list packages which are to be explicitely excluded from the automatic constructed
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2199
     required prerequisites list. 
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2200
     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
  2201
     my classes is considered to be a prerequisite package."
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  2202
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  2203
    ^ #()
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  2204
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  2205
    "Modified: / 17-08-2006 / 19:48:59 / cg"
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  2206
!
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  2207
10380
ff1cfee6130b Fix subproject incluseion in Make.proto
Stefan Vogel <sv@exept.de>
parents: 10369
diff changeset
  2208
excludedFromSubProjects
ff1cfee6130b Fix subproject incluseion in Make.proto
Stefan Vogel <sv@exept.de>
parents: 10369
diff changeset
  2209
    "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
  2210
     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
  2211
ff1cfee6130b Fix subproject incluseion in Make.proto
Stefan Vogel <sv@exept.de>
parents: 10369
diff changeset
  2212
    ^ #()
ff1cfee6130b Fix subproject incluseion in Make.proto
Stefan Vogel <sv@exept.de>
parents: 10369
diff changeset
  2213
ff1cfee6130b Fix subproject incluseion in Make.proto
Stefan Vogel <sv@exept.de>
parents: 10369
diff changeset
  2214
    "Modified: / 17-08-2006 / 19:49:40 / cg"
10039
0270d37a36c8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10034
diff changeset
  2215
!
0270d37a36c8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10034
diff changeset
  2216
14808
9b6499b3ca93 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14790
diff changeset
  2217
includedInPreRequisites
17577
53adcc238353 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17552
diff changeset
  2218
    "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
  2219
     even if not found by the automatic search.
9b6499b3ca93 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14790
diff changeset
  2220
     Redefine this, if classes from other packages are referred to via reflection
9b6499b3ca93 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14790
diff changeset
  2221
     or by constructing names dynamically (i.e. the search cannot find it)"
9b6499b3ca93 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14790
diff changeset
  2222
9b6499b3ca93 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14790
diff changeset
  2223
    ^ #()
9b6499b3ca93 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14790
diff changeset
  2224
!
9b6499b3ca93 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14790
diff changeset
  2225
15395
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  2226
includedInSubProjects
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  2227
    "list packages which are to be explicitely included in the subproject list,
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  2228
     even if not found by the automatic search.
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  2229
     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
  2230
     for those, redefine #includedInPreRequisites."
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  2231
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  2232
    ^ #()
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  2233
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  2234
    "Modified: / 17-08-2006 / 19:57:46 / cg"
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  2235
!
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  2236
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2237
mandatoryPreRequisites
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2238
    "list packages which are mandatory as a prerequisite.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2239
     This are packages containing superclasses of my classes and classes which
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2240
     are extended by myself.
16554
3f91905247d3 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16541
diff changeset
  2241
     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
  2242
     This method is generated automatically,
20664
7d208f11cb95 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20624
diff changeset
  2243
     by searching along the inheritance chain of all of my classes.
7d208f11cb95 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20624
diff changeset
  2244
     Please take a look at the #referencedPreRequisites method as well."
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2245
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2246
    ^ #()
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2247
!
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2248
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2249
preRequisites
20527
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2250
    "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
  2251
     This is used to build dependency chains in makefiles"
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2252
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2253
    "use an OrderedSet here, so that mandatory prerequisites come first"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2254
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2255
    ^ OrderedSet new
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2256
        addAll:self mandatoryPreRequisites;
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2257
        addAll:self referencedPreRequisites;
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2258
        addAll:self includedInPreRequisites;
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2259
        removeAllFoundIn:self excludedFromPreRequisites;
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2260
        yourself.
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2261
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2262
    "Modified: / 17-08-2006 / 19:54:21 / cg"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2263
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2264
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  2265
preRequisitesFor:packageId
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2266
    |def|
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  2267
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  2268
    def := self definitionClassForPackage:packageId.
13820
f46f7306eea2 changed: #preRequisitesFor:
Claus Gittinger <cg@exept.de>
parents: 13809
diff changeset
  2269
    def isNil ifTrue:[
f46f7306eea2 changed: #preRequisitesFor:
Claus Gittinger <cg@exept.de>
parents: 13809
diff changeset
  2270
        "Maybe the package is not loaded? Try to load it..."
16146
1637eb12dc30 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16024
diff changeset
  2271
        [
1637eb12dc30 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16024
diff changeset
  2272
            Smalltalk loadPackage:packageId.
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2273
            def := self definitionClassForPackage:packageId
16146
1637eb12dc30 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16024
diff changeset
  2274
        ] on:PackageLoadError do:[:ex| def := nil].
13820
f46f7306eea2 changed: #preRequisitesFor:
Claus Gittinger <cg@exept.de>
parents: 13809
diff changeset
  2275
    ].
21259
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  2276
    ^ def isNil ifTrue:[
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  2277
        "Still no project definition - maybe it does not exist?"
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  2278
        Transcript showCR:'Warning: no definition class for package: ', packageId.
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  2279
        ((self searchForPreRequisites:packageId)
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  2280
            fold:[:d1 :d2| d1 addAll:d2; yourself]) keys
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  2281
    ] ifFalse:[ 
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  2282
        def effectivePreRequisites 
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  2283
    ]
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  2284
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  2285
    "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
  2286
    "Modified: / 18-11-2011 / 14:52:43 / cg"
f46f7306eea2 changed: #preRequisitesFor:
Claus Gittinger <cg@exept.de>
parents: 13809
diff changeset
  2287
    "Modified (format): / 19-11-2011 / 11:25:36 / cg"
21259
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  2288
    "Modified: / 17-01-2017 / 16:55:39 / stefan"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  2289
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  2290
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2291
referencedPreRequisites
16213
27e97f818e5b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16179
diff changeset
  2292
    "list packages which are a prerequisite, because they contain
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2293
     classes which are referenced by my classes.
20664
7d208f11cb95 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20624
diff changeset
  2294
     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
  2295
     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
  2296
     unloaded then may lead to a runtime doesNotUnderstand error, unless the caller
5546981c5eb9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17461
diff changeset
  2297
     includes explicit checks for the package being present.
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2298
     This method is generated automatically,
20664
7d208f11cb95 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20624
diff changeset
  2299
     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
  2300
     Please also take a look at the #mandatoryPreRequisites method"
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
    ^ #()
12186
Claus Gittinger <cg@exept.de>
parents: 12143
diff changeset
  2303
!
Claus Gittinger <cg@exept.de>
parents: 12143
diff changeset
  2304
9685
e6a533e0a5e5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9683
diff changeset
  2305
siblingsAreSubProjects
e6a533e0a5e5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9683
diff changeset
  2306
    ^ false
e6a533e0a5e5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9683
diff changeset
  2307
!
e6a533e0a5e5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9683
diff changeset
  2308
11377
35d261aa5493 splash file definition
Claus Gittinger <cg@exept.de>
parents: 11369
diff changeset
  2309
splashFileName
35d261aa5493 splash file definition
Claus Gittinger <cg@exept.de>
parents: 11369
diff changeset
  2310
    "answer the base-name of the splash bitmap.
35d261aa5493 splash file definition
Claus Gittinger <cg@exept.de>
parents: 11369
diff changeset
  2311
35d261aa5493 splash file definition
Claus Gittinger <cg@exept.de>
parents: 11369
diff changeset
  2312
     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
  2313
35d261aa5493 splash file definition
Claus Gittinger <cg@exept.de>
parents: 11369
diff changeset
  2314
    ^ nil.
35d261aa5493 splash file definition
Claus Gittinger <cg@exept.de>
parents: 11369
diff changeset
  2315
!
35d261aa5493 splash file definition
Claus Gittinger <cg@exept.de>
parents: 11369
diff changeset
  2316
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2317
subProjects
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  2318
    "list packages which are known as subprojects.
14959
96af920715ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14957
diff changeset
  2319
     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
  2320
     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
  2321
     for those, redefine #referencedPrerequisites or #mandatoryPreRequisites."
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2322
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2323
    ^ #()
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2324
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2325
    "Modified: / 17-08-2006 / 19:57:46 / cg"
21449
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2326
!
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2327
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2328
superProject
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2329
    "return the package which contains me as subProject,
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2330
     or if not found, which contains me under its directory hierarchy,
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2331
     or nil if none found"
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2332
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2333
    |p superPackage idx|
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2334
    
21451
44f655bf5c80 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 21449
diff changeset
  2335
    p := self package.
21449
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2336
    ProjectDefinition allSubclassesDo:[:prjDef |
21451
44f655bf5c80 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 21449
diff changeset
  2337
        (prjDef subProjects includes:p) ifTrue:[^ prjDef].
44f655bf5c80 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 21449
diff changeset
  2338
    ].
21449
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2339
    [
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2340
        (idx := p lastIndexOf:$/) ~~ 0 
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2341
    ] whileTrue:[
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2342
        |defClass|
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2343
        
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2344
        superPackage := p copyTo:idx-1.
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2345
        (defClass := ProjectDefinition definitionClassForPackage:superPackage) notNil ifTrue:[
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2346
            ^ defClass
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2347
        ].
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2348
        p := superPackage.
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2349
    ].    
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2350
    ^ nil
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2351
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2352
    "
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2353
     stx_goodies_refactoryBrowser_lint superProject 
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2354
     exept_expecco_plugin_guiBrowser superProject 
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2355
    "
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2356
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2357
    "Created: / 15-02-2017 / 16:49:05 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2358
! !
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2359
12372
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2360
!ProjectDefinition class methodsFor:'description - actions'!
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2361
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2362
postLoadAction
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2363
    "invoked after loading a project"
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2364
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2365
    "/ 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
  2366
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2367
    "Modified: / 17-08-2006 / 19:59:17 / cg"
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2368
!
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2369
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2370
preLoadAction
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2371
    "invoked before loading a project"
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2372
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2373
    "/ 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
  2374
!
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2375
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2376
preUnloadAction
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2377
    "invoked before unloading a project"
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2378
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2379
    "/ 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
  2380
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2381
    "Modified: / 17-08-2006 / 19:59:26 / cg"
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2382
! !
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2383
16256
466564fe326f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16222
diff changeset
  2384
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2385
!ProjectDefinition class methodsFor:'description - compilation'!
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2386
11940
cb9e5867b474 base address definition moved into a separate spec
Claus Gittinger <cg@exept.de>
parents: 11937
diff changeset
  2387
additionalBaseAddressDefinition_bc_dot_mak
cb9e5867b474 base address definition moved into a separate spec
Claus Gittinger <cg@exept.de>
parents: 11937
diff changeset
  2388
    "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
  2389
     Subclasses may redefine this to something like
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2390
        LIB_BASE=$(LIBWIDG_BASE)
11940
cb9e5867b474 base address definition moved into a separate spec
Claus Gittinger <cg@exept.de>
parents: 11937
diff changeset
  2391
     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
  2392
    "
cb9e5867b474 base address definition moved into a separate spec
Claus Gittinger <cg@exept.de>
parents: 11937
diff changeset
  2393
cb9e5867b474 base address definition moved into a separate spec
Claus Gittinger <cg@exept.de>
parents: 11937
diff changeset
  2394
    ^ nil
cb9e5867b474 base address definition moved into a separate spec
Claus Gittinger <cg@exept.de>
parents: 11937
diff changeset
  2395
!
cb9e5867b474 base address definition moved into a separate spec
Claus Gittinger <cg@exept.de>
parents: 11937
diff changeset
  2396
11829
2d880f341cfc #additionalDefinitions for both bc_dot_mak and make_dot_proto
Stefan Vogel <sv@exept.de>
parents: 11789
diff changeset
  2397
additionalDefinitions
22657
2aea3942f531 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22387
diff changeset
  2398
    "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
  2399
2d880f341cfc #additionalDefinitions for both bc_dot_mak and make_dot_proto
Stefan Vogel <sv@exept.de>
parents: 11789
diff changeset
  2400
    ^ ''
17366
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2401
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2402
    "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
  2403
!
2d880f341cfc #additionalDefinitions for both bc_dot_mak and make_dot_proto
Stefan Vogel <sv@exept.de>
parents: 11789
diff changeset
  2404
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2405
additionalDefinitions_bc_dot_mak
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2406
    "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
  2407
     Subclasses may redefine this."
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2408
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2409
    ^ self additionalDefinitions_nt_dot_mak
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2410
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2411
    "Created: / 22-08-2006 / 23:59:32 / cg"
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2412
!
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2413
9625
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2414
additionalDefinitions_make_dot_proto
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2415
    "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
  2416
11829
2d880f341cfc #additionalDefinitions for both bc_dot_mak and make_dot_proto
Stefan Vogel <sv@exept.de>
parents: 11789
diff changeset
  2417
    ^ self additionalDefinitions
9625
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2418
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2419
    "Created: / 22-08-2006 / 23:53:08 / cg"
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2420
!
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2421
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2422
additionalDefinitions_nt_dot_mak
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2423
    "obsolete - kept for compatibility with old project files"
9625
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2424
11829
2d880f341cfc #additionalDefinitions for both bc_dot_mak and make_dot_proto
Stefan Vogel <sv@exept.de>
parents: 11789
diff changeset
  2425
    ^ self additionalDefinitions
9625
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2426
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2427
    "Created: / 22-08-2006 / 23:59:32 / cg"
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2428
!
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2429
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
  2430
additionalHeaderRulesUsingTemplate:template withSeparator:pathSeparator
13687
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2431
    "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
  2432
     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
  2433
     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
  2434
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2435
    ^ String streamContents:[:s |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2436
        (self extensionClassesWithSuperclasses:true) do:[:eachExtendedClass |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2437
            |headerFileDirPath baseFilename|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2438
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2439
            (eachExtendedClass isLoaded not or:[eachExtendedClass wasAutoloaded]) ifTrue:[
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
  2440
                headerFileDirPath := self pathToPackage:eachExtendedClass package withSeparator:pathSeparator.
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2441
                baseFilename := self filenameForClass:eachExtendedClass.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2442
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2443
                s nextPutAll:(template
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
  2444
                                bindWith:headerFileDirPath
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
  2445
                                with:baseFilename).
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2446
            ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2447
        ].
13687
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2448
    ].
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2449
13688
4f43dc4a3182 added: #additionalHeaderRulesUsingTemplate:pathConverter:
Claus Gittinger <cg@exept.de>
parents: 13687
diff changeset
  2450
    "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
  2451
!
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2452
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2453
additionalHeaderRules_bc_dot_mak
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2454
    "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
  2455
13695
Claus Gittinger <cg@exept.de>
parents: 13694
diff changeset
  2456
    ^ self
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2457
        additionalHeaderRulesUsingTemplate:(self singleHeaderRuleTemplate_bc_dot_mak)
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
  2458
        withSeparator:'\'
13687
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2459
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2460
    "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
  2461
!
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2462
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2463
additionalHeaderRules_make_dot_proto
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2464
    "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
  2465
13695
Claus Gittinger <cg@exept.de>
parents: 13694
diff changeset
  2466
    ^ self
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2467
        additionalHeaderRulesUsingTemplate:(self singleHeaderRuleTemplate_make_dot_proto)
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
  2468
        withSeparator:'/'
13687
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2469
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2470
    "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
  2471
!
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2472
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2473
additionalLinkLibraries_bc_dot_mak
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2474
    "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
  2475
     Subclasses may redefine this"
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2476
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2477
    "backward compatibilty with old projects"
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2478
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2479
    ^ self additionalLinkLibraries_nt_dot_mak
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2480
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2481
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2482
    "Created: / 22-08-2006 / 23:53:33 / cg"
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2483
!
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2484
9733
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  2485
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
  2486
    "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
  2487
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  2488
    ^ ''
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  2489
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  2490
    "Created: / 22-08-2006 / 23:53:33 / cg"
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  2491
!
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  2492
10299
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  2493
additionalLinkLibraries_nt_dot_mak
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2494
    "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
  2495
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  2496
    ^ ''
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  2497
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  2498
    "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
  2499
!
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  2500
17366
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2501
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
  2502
    "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
  2503
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2504
     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
  2505
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2506
    | 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
  2507
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2508
    cls := self.
20503
e598faa37310 #OTHER by stefan
Stefan Vogel <sv@exept.de>
parents: 20424
diff changeset
  2509
    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
  2510
    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
  2511
    [ cls ~~ Object ] whileTrue:[
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2512
        cls class selectorsAndMethodsDo:[:selector :method |
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2513
            method annotationsAt: #file:target: orAt:#file:target:extends: do: [ :annotation |
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2514
                (processed includes: selector) ifFalse:[
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2515
                    | file target extends contents |
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2516
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2517
                    processed add: selector.
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2518
                    file := annotation argumentAt: 1.
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2519
                    target := annotation argumentAt: 2.
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2520
                    annotation key == #file:target:extends: ifTrue:[ 
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2521
                        extends := annotation argumentAt: 3.
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2522
                    ].
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2523
                    (#('Make.proto' 'bc.mak' ) includes: file) ifFalse:[ 
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2524
                        self error:'Only Make.proto or bc.mak can have extension rules!!'
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2525
                    ].
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2526
                    extends notNil ifTrue:[
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2527
                        file = 'Make.proto' ifTrue:[ 
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
  2528
                            (#('all' 'clean' ) includes: extends) ifFalse:[ 
17366
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2529
                                self error: ('Rule %1 cannot be extended. Check documentation to see which rules can be extended' bindWith: extends).
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2530
                            ].
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2531
                        ].
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2532
                        file = 'bc.mak' ifTrue:[ 
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
  2533
                            (#('ALL' 'clean') includes: extends) ifFalse:[ 
17366
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2534
                                self error: ('Rule %1 cannot be extended. Check documentation to see which rules can be extended' bindWith: extends).
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2535
                            ].
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2536
                        ].
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2537
                    ].
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2538
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2539
                    (fileToGenerateFor = file and:[(contents := self perform: selector) notNil]) ifTrue:[ 
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2540
                        rules nextPutAll: contents.
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2541
                        rules cr.
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2542
                        extends notNil ifTrue:[ 
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2543
                            rules nextPutAll: extends; nextPutAll:'::'; space; nextPutLine: target; cr.
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2544
                        ].
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2545
                    ].
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2546
                ].
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2547
            ]
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2548
        ].
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2549
        cls := cls superclass.
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2550
    ].
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2551
    fileToGenerateFor = 'Make.proto' ifTrue:[ 
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2552
        rules nextPutAll: self additionalRules_make_dot_proto.
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2553
    ] ifFalse:[ 
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2554
        fileToGenerateFor = 'bc.mak' ifTrue:[ 
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2555
            rules nextPutAll: self additionalRules_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
  2556
        ]
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2557
    ].
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2558
    ^ 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
  2559
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2560
    "
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2561
    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
  2562
    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
  2563
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2564
    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
  2565
    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
  2566
    "
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2567
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2568
    "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
  2569
    "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
  2570
!
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2571
14859
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2572
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
  2573
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2574
    (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
  2575
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2576
    ^'
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2577
# **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
  2578
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2579
# 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
  2580
# 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
  2581
# 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
  2582
!!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
  2583
$(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
  2584
!!ENDIF
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2585
' 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
  2586
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2587
    "
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2588
        stx_libscm_mercurial additionalRulesHG_bc_dot_mak
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2589
    "
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2590
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2591
    "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
  2592
    "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
  2593
!
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2594
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2595
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
  2596
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2597
    (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
  2598
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2599
    ^'
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2600
# 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
  2601
# 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
  2602
# 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
  2603
ifneq (**NOHG**, $(shell hg root 2> /dev/null || echo -n ''**NOHG**''))
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2604
%1.$(O): $(shell hg root)/.hg/dirstate
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2605
endif
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2606
' 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
  2607
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2608
    "
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2609
        stx_libscm_mercurial additionalRulesHG_make_dot_proto
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2610
    "
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2611
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2612
    "Created: / 28-11-2012 / 10:12:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2613
!
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2614
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2615
additionalRulesSvn_make_dot_proto
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2616
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2617
    (self class includesSelector: #svnRevisionNr) ifFalse:[^''].
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2618
14859
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2619
    ^'
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2620
# 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
  2621
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
  2622
.svnversion: *.st
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2623
        if [ -d .svn ]; then \
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2624
                rev=$(shell svnversion -n); \
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2625
                echo -n $$rev > .svnversion; \
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2626
        else \
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2627
                echo -n exported > .svnversion; \
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2628
        fi
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2629
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2630
%1.o: %1.st .svnversion
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2631
        @if [ -d .svn ]; then \
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2632
                rev2="$(shell printf "%-16s" $$(cat .svnversion))"; \
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2633
                echo "  [SV]  Expanding svnRevisionNo in $1.st"; \
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2634
                sed -e "s/\"\$$SVN\-Revision:\".*\"\$$\"/\"\$$SVN-Revision:\"\''$$rev2\''\"\$$\"/g" $< > .%1.svn.st; \
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2635
        fi
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2636
        $(MAKE) CC="$(CLASSLIB_CC)" OPT="$(OPT)" SEPINITCODE="$(SEPINITCODE)" STC="$(STC)" STFILE=.%1.svn $(C_RULE);
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2637
        sed -i -e "s/\".%1.svn.st\");/\"\%1.st\");/g" .%1.svn.c
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2638
        $(MAKE) .%1.svn.$(O)
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2639
        @mv .%1.svn.$(O) %1.$(O)
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2640
endif
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2641
' 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
  2642
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2643
    "
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2644
        stx_libbasic3 additionalRulesSvn_make_dot_proto
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2645
    "
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2646
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2647
    "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
  2648
    "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
  2649
!
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2650
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2651
additionalRules_bc_dot_mak
10312
7f71d47b09bd #additionalTargets_bc_dot_mak for applications
Stefan Vogel <sv@exept.de>
parents: 10306
diff changeset
  2652
    "obsolete - kept for compatibility with old project files"
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  2653
10312
7f71d47b09bd #additionalTargets_bc_dot_mak for applications
Stefan Vogel <sv@exept.de>
parents: 10306
diff changeset
  2654
    ^ ''
7f71d47b09bd #additionalTargets_bc_dot_mak for applications
Stefan Vogel <sv@exept.de>
parents: 10306
diff changeset
  2655
7f71d47b09bd #additionalTargets_bc_dot_mak for applications
Stefan Vogel <sv@exept.de>
parents: 10306
diff changeset
  2656
    "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
  2657
!
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2658
9625
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2659
additionalRules_make_dot_proto
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2660
    "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
  2661
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2662
    ^ ''
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2663
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2664
    "Created: / 22-08-2006 / 23:59:16 / cg"
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2665
!
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2666
9972
c63164ec0584 Allow shared libraries to be defined for a class lib (needed for liboracle)
Stefan Vogel <sv@exept.de>
parents: 9964
diff changeset
  2667
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
  2668
    "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
  2669
c63164ec0584 Allow shared libraries to be defined for a class lib (needed for liboracle)
Stefan Vogel <sv@exept.de>
parents: 9964
diff changeset
  2670
    ^ ''
c63164ec0584 Allow shared libraries to be defined for a class lib (needed for liboracle)
Stefan Vogel <sv@exept.de>
parents: 9964
diff changeset
  2671
!
c63164ec0584 Allow shared libraries to be defined for a class lib (needed for liboracle)
Stefan Vogel <sv@exept.de>
parents: 9964
diff changeset
  2672
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2673
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
  2674
    "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
  2675
     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
  2676
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2677
    "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
  2678
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2679
    ^''
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2680
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2681
    "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
  2682
    "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
  2683
!
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2684
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2685
additionalTargets_bc_dot_mak
10312
7f71d47b09bd #additionalTargets_bc_dot_mak for applications
Stefan Vogel <sv@exept.de>
parents: 10306
diff changeset
  2686
    "obsolete - kept for compatibility with old project files"
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  2687
10312
7f71d47b09bd #additionalTargets_bc_dot_mak for applications
Stefan Vogel <sv@exept.de>
parents: 10306
diff changeset
  2688
    ^ ''
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2689
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2690
    "Created: / 23-08-2006 / 00:00:35 / cg"
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2691
!
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2692
9625
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2693
additionalTargets_make_dot_proto
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2694
    "allows for additional targets to be added to the make.proto file."
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2695
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2696
    ^ ''
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2697
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2698
    "Created: / 22-08-2006 / 23:53:33 / cg"
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2699
!
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2700
18428
398263d5137c class: ProjectDefinition
sr
parents: 18323
diff changeset
  2701
additional_post_nsis_rules
398263d5137c class: ProjectDefinition
sr
parents: 18323
diff changeset
  2702
    "this will be performed after the nsis did build the program installer"
398263d5137c class: ProjectDefinition
sr
parents: 18323
diff changeset
  2703
    ^ ''
398263d5137c class: ProjectDefinition
sr
parents: 18323
diff changeset
  2704
398263d5137c class: ProjectDefinition
sr
parents: 18323
diff changeset
  2705
    "Created: / 02-06-2015 / 17:41:37 / gg"
398263d5137c class: ProjectDefinition
sr
parents: 18323
diff changeset
  2706
!
398263d5137c class: ProjectDefinition
sr
parents: 18323
diff changeset
  2707
19592
724f8970b021 #FEATURE by sr
sr
parents: 19587
diff changeset
  2708
additional_post_nsis_rules64
724f8970b021 #FEATURE by sr
sr
parents: 19587
diff changeset
  2709
    "this will be performed after the nsis did build the program installer for 64bit build"
724f8970b021 #FEATURE by sr
sr
parents: 19587
diff changeset
  2710
    ^ ''
724f8970b021 #FEATURE by sr
sr
parents: 19587
diff changeset
  2711
724f8970b021 #FEATURE by sr
sr
parents: 19587
diff changeset
  2712
    "Created: / 02-06-2015 / 17:41:37 / gg"
724f8970b021 #FEATURE by sr
sr
parents: 19587
diff changeset
  2713
!
724f8970b021 #FEATURE by sr
sr
parents: 19587
diff changeset
  2714
10979
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2715
globalDefines
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2716
    "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
  2717
     an subprojects"
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2718
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2719
    ^ ''
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2720
!
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2721
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2722
globalDefines_unix
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2723
    "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
  2724
     an subprojects"
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2725
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2726
    ^ self globalDefines
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2727
!
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2728
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2729
globalDefines_win32
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2730
    "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
  2731
     an subprojects"
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2732
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2733
    ^ self globalDefines
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2734
!
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2735
10331
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2736
localDefines
10979
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2737
    "allow for the specification of additional defines for stc compilation"
10331
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2738
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2739
    ^ ''
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2740
!
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2741
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2742
localDefines_unix
10979
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2743
    "allow for the specification of additional defines for stc compilation"
10331
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2744
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2745
    ^ self localDefines
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2746
!
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2747
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2748
localDefines_win32
10979
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2749
    "allow for the specification of additional defines for stc compilation"
10331
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2750
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2751
    ^ self localDefines
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2752
!
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2753
9826
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  2754
localIncludes
10979
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2755
    "allow for the specification of additional include directories"
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2756
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2757
    ^ ''
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2758
9826
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  2759
    "Created: / 06-09-2006 / 18:14:31 / cg"
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  2760
!
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  2761
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  2762
localIncludes_unix
10979
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2763
    "allow for the specification of additional include directories"
9826
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  2764
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  2765
    ^ self makeUnixIncludes:(self localIncludes)
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  2766
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2767
    "Created: / 18-08-2006 / 12:50:27 / cg"
9826
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  2768
    "Modified: / 06-09-2006 / 18:15:26 / cg"
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2769
!
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2770
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2771
localIncludes_win32
10979
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2772
    "allow for the specification of additional include directories"
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2773
9826
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  2774
    ^ self makeWin32Includes:(self localIncludes)
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2775
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2776
    "Created: / 18-08-2006 / 12:50:27 / cg"
9826
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  2777
    "Modified: / 06-09-2006 / 18:15:37 / cg"
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2778
!
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2779
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
  2780
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
  2781
    "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
  2782
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2783
    ^ ''
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2784
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2785
    "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
  2786
!
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2787
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2788
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
  2789
    "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
  2790
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2791
    ^ 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
  2792
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2793
    "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
  2794
!
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2795
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2796
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
  2797
    "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
  2798
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2799
    ^ 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
  2800
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2801
    "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
  2802
!
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2803
13687
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2804
singleHeaderRuleTemplate_bc_dot_mak
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2805
    "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
  2806
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2807
    ^ '
13688
4f43dc4a3182 added: #additionalHeaderRulesUsingTemplate:pathConverter:
Claus Gittinger <cg@exept.de>
parents: 13687
diff changeset
  2808
%1\%2.$(H):
17253
bd800f89aaa4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17236
diff changeset
  2809
',Character tab,'pushd %1 \
bd800f89aaa4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17236
diff changeset
  2810
',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
  2811
',Character tab,'& popd
13687
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2812
'
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2813
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2814
    "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
  2815
!
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2816
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2817
singleHeaderRuleTemplate_make_dot_proto
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2818
    "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
  2819
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2820
    ^ '
13688
4f43dc4a3182 added: #additionalHeaderRulesUsingTemplate:pathConverter:
Claus Gittinger <cg@exept.de>
parents: 13687
diff changeset
  2821
%1/%2.$(H):
17253
bd800f89aaa4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17236
diff changeset
  2822
',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
  2823
'
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2824
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2825
    "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
  2826
!
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2827
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2828
stcOptimizationOptions
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2829
    "see the stc reference / stc usage for options.
17070
713e0328c7d0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17025
diff changeset
  2830
     Can be redefined in concrete packages.
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2831
     For now, the following variants are useful:
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2832
        +optspace3                  most compact code
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2833
                                    - use for all gui, application code.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2834
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2835
        +optinline +optinline2 +inlineNew
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2836
                                    fastest code
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2837
                                    - use only for computation-intensive classes"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2838
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2839
    ^ '+optspace3'
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2840
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2841
    "Created: / 18-08-2006 / 12:50:27 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2842
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2843
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2844
stcWarningOptions
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2845
    "see the stc reference / stc usage for options.
17070
713e0328c7d0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17025
diff changeset
  2846
     Can be redefined in concrete packages.
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2847
     For now, the following variants are useful:
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2848
        -warn                   no warnings
17070
713e0328c7d0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17025
diff changeset
  2849
        -warnNonStandard        no warnings about non-standard smalltalk features
713e0328c7d0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17025
diff changeset
  2850
        -warnUnused             no warnings about unused variables"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2851
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2852
    ^ '-warnNonStandard'
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2853
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2854
    "Created: / 18-08-2006 / 12:51:38 / cg"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2855
! !
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2856
22688
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2857
!ProjectDefinition class methodsFor:'description - contents'!
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2858
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2859
additionalClassNamesAndAttributes
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2860
    "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
  2861
     in the image (someone may have removed it by purpose)"
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2862
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2863
    ^ #()
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2864
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2865
    "Created: / 21-08-2006 / 19:53:04 / cg"
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2866
!
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2867
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2868
classNamesAndAttributes
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2869
    "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
  2870
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2871
    "/ should this be a subclassResponsibility here ?
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2872
    ^ #()
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2873
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2874
    "Created: / 07-08-2006 / 19:02:57 / fm"
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2875
    "Modified: / 07-08-2006 / 21:25:25 / fm"
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2876
    "Modified: / 17-08-2006 / 20:47:20 / cg"
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2877
!
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2878
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2879
extensionMethodNames
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2880
    "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
  2881
     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
  2882
     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
  2883
     if it has extensions."
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2884
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2885
    "/ should this be a subclassResponsibility here ?
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2886
    ^ #()
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2887
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2888
    "Modified: / 17-08-2006 / 20:49:51 / cg"
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2889
!
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2890
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2891
ignoredClassNames
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2892
    "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
  2893
     generated classNamesAndAttributes spec"
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2894
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2895
    ^ #()
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2896
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2897
    "Created: / 23-01-2007 / 19:08:27 / cg"
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2898
! !
22657
2aea3942f531 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22387
diff changeset
  2899
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2900
!ProjectDefinition class methodsFor:'description - project information'!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2901
11611
fa06cde6bd11 Allow for additional icon files to be placed in resources
Stefan Vogel <sv@exept.de>
parents: 11580
diff changeset
  2902
applicationAdditionalIconFileNames
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  2903
    "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
  2904
    (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
  2905
fa06cde6bd11 Allow for additional icon files to be placed in resources
Stefan Vogel <sv@exept.de>
parents: 11580
diff changeset
  2906
    ^ #()
fa06cde6bd11 Allow for additional icon files to be placed in resources
Stefan Vogel <sv@exept.de>
parents: 11580
diff changeset
  2907
!
fa06cde6bd11 Allow for additional icon files to be placed in resources
Stefan Vogel <sv@exept.de>
parents: 11580
diff changeset
  2908
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  2909
applicationDocumentTypeDescriptions
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  2910
    "Return the OSX document type descriptions.
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  2911
     For deployment, some systems can make use of additional information
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  2912
     on which documents are handled by the application.
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  2913
     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
  2914
     If the deployed app can/should handle this, redefine this
21562
1218cac5c5c5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21509
diff changeset
  2915
     to return a collection of instances of ApplicationDocumentTypeDescription."
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  2916
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  2917
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  2918
    ^ nil
21562
1218cac5c5c5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21509
diff changeset
  2919
1218cac5c5c5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21509
diff changeset
  2920
    "Modified (comment): / 24-02-2017 / 09:36:42 / cg"
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  2921
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  2922
11039
1f977c01e7df Fix usage of #iconFilename vs. #applicationIconFilename
Stefan Vogel <sv@exept.de>
parents: 11035
diff changeset
  2923
applicationIconFileName
1f977c01e7df Fix usage of #iconFilename vs. #applicationIconFilename
Stefan Vogel <sv@exept.de>
parents: 11035
diff changeset
  2924
    "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
  2925
1f977c01e7df Fix usage of #iconFilename vs. #applicationIconFilename
Stefan Vogel <sv@exept.de>
parents: 11035
diff changeset
  2926
    ^ nil
1f977c01e7df Fix usage of #iconFilename vs. #applicationIconFilename
Stefan Vogel <sv@exept.de>
parents: 11035
diff changeset
  2927
!
1f977c01e7df Fix usage of #iconFilename vs. #applicationIconFilename
Stefan Vogel <sv@exept.de>
parents: 11035
diff changeset
  2928
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  2929
applicationIconFileNameLinux
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  2930
    "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
  2931
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  2932
    ^ nil
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  2933
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  2934
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  2935
applicationIconFileNameOSX
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  2936
    "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
  2937
     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
  2938
     multiple resolutions."
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  2939
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  2940
    ^ nil
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  2941
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  2942
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  2943
applicationIconFileNameWindows
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  2944
    "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
  2945
     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
  2946
     single or multiple resolutions."
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  2947
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  2948
    "/ for backward compatibility
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  2949
    ^ self applicationIconFileName
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  2950
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  2951
21571
102c0d9941b7 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 21569
diff changeset
  2952
applicationReadMeFileNameOSX
102c0d9941b7 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 21569
diff changeset
  2953
    "Return the OSX filename for a readme file.
102c0d9941b7 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 21569
diff changeset
  2954
     If nil, nothing is installed;
102c0d9941b7 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 21569
diff changeset
  2955
     if non-nil, it is copied into the dmg folder."
102c0d9941b7 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 21569
diff changeset
  2956
102c0d9941b7 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 21569
diff changeset
  2957
    ^ nil
102c0d9941b7 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 21569
diff changeset
  2958
102c0d9941b7 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 21569
diff changeset
  2959
    "Created: / 24-02-2017 / 14:21:57 / cg"
102c0d9941b7 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 21569
diff changeset
  2960
!
102c0d9941b7 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 21569
diff changeset
  2961
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2962
companyName
9584
40fa96f1313a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9579
diff changeset
  2963
    "Returns a company string which will appear in <lib>.rc.
20564
c9f47a3f5e9c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20550
diff changeset
  2964
     Under win32, this is placed into the dll's file-info.
c9f47a3f5e9c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20550
diff changeset
  2965
     Other systems may put it elsewhere, or ignore it."
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2966
20601
2308f69ba99c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20590
diff changeset
  2967
    |m|
2308f69ba99c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20590
diff changeset
  2968
    
2308f69ba99c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20590
diff changeset
  2969
    m := self module.
2308f69ba99c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20590
diff changeset
  2970
    (m = 'stx') ifTrue:[
2308f69ba99c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20590
diff changeset
  2971
        ^ 'Claus Gittinger & eXept Software AG'  
2308f69ba99c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20590
diff changeset
  2972
    ].
2308f69ba99c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20590
diff changeset
  2973
    (m = 'exept') ifTrue:[
2308f69ba99c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20590
diff changeset
  2974
        ^ 'eXept Software AG'  
2308f69ba99c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20590
diff changeset
  2975
    ].
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2976
    ^ 'My Company'
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2977
9584
40fa96f1313a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9579
diff changeset
  2978
    "Modified: / 18-08-2006 / 16:08:20 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2979
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2980
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2981
description
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2982
    "Returns a description string which will appear in vc.def / bc.def"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2983
9803
cbec7d6caec8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9799
diff changeset
  2984
    ^self productName,' ',self packageName
cbec7d6caec8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9799
diff changeset
  2985
"/    ^ self name
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2986
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2987
    "Created: / 08-08-2006 / 11:15:01 / fm"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2988
    "Modified: / 17-08-2006 / 20:53:34 / cg"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2989
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2990
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2991
fileDescription
10416
e4fe2bf2276d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10414
diff changeset
  2992
    "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
  2993
9803
cbec7d6caec8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9799
diff changeset
  2994
    ^self description
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2995
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2996
    "Modified: / 17-08-2006 / 20:27:07 / cg"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2997
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2998
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2999
fileMajorVersionNr
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3000
    "Returns a versionNumber which will appear in libName.rc"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3001
11100
c9ec12ef4b3b Set default for fileMajorVersionNumber and fileMajorVersionNumber
Stefan Vogel <sv@exept.de>
parents: 11074
diff changeset
  3002
    ^ self majorVersionNr
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3003
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3004
    "Created: / 18-08-2006 / 12:03:32 / cg"
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  3005
    "Modified: / 30-08-2006 / 18:50:51 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3006
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3007
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3008
fileMinorVersionNr
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3009
    "Returns a versionNumber which will appear in libName.rc"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3010
11100
c9ec12ef4b3b Set default for fileMajorVersionNumber and fileMajorVersionNumber
Stefan Vogel <sv@exept.de>
parents: 11074
diff changeset
  3011
    ^ self minorVersionNr
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3012
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3013
    "Created: / 18-08-2006 / 12:03:13 / cg"
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  3014
    "Modified: / 30-08-2006 / 18:50:46 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3015
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3016
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3017
fileReleaseNr
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3018
    "Returns a releaseNumber which will appear in libName.rc"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3019
11035
ff88ec6339a3 Generate valid project.rc files even if the CVS revision string ends with
Stefan Vogel <sv@exept.de>
parents: 10979
diff changeset
  3020
    "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
  3021
     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
  3022
14859
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  3023
    "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
  3024
11035
ff88ec6339a3 Generate valid project.rc files even if the CVS revision string ends with
Stefan Vogel <sv@exept.de>
parents: 10979
diff changeset
  3025
    ^ self cvsRevision last upTo:$m
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3026
14859
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  3027
    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
  3028
    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
  3029
    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
  3030
    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
  3031
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  3032
    | nr |
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  3033
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  3034
    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
  3035
    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
  3036
    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
  3037
    ^nr
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  3038
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3039
    "Created: / 18-08-2006 / 12:02:58 / cg"
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  3040
    "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
  3041
    "Modified: / 23-11-2012 / 11:24:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3042
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3043
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3044
fileRevisionNr
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3045
    "Returns a revisionNumber which will appear in libName.rc"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3046
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  3047
    "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
  3048
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  3049
    "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
  3050
9618
adc627ef4702 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9615
diff changeset
  3051
    ^ self cvsRevision first
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3052
14859
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  3053
    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
  3054
    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
  3055
    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
  3056
    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
  3057
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  3058
    | nr |
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  3059
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  3060
    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
  3061
    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
  3062
    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
  3063
    ^nr
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  3064
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  3065
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  3066
    "
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  3067
    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
  3068
    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
  3069
    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
  3070
    "
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  3071
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3072
    "Created: / 18-08-2006 / 12:02:39 / cg"
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  3073
    "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
  3074
    "Modified: / 23-11-2012 / 11:24:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3075
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3076
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3077
fileVersion
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3078
    "Returns a fileVersion string which will appear in libName.rc"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3079
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3080
    "<major>.<minor>.<rev>.<rel> (such as '1.2.17.1') "
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3081
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3082
    ^ '%1.%2.%3.%4'
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3083
        bindWith:self fileMajorVersionNr
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3084
        with:self fileMinorVersionNr
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3085
        with:self fileRevisionNr
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3086
        with:self fileReleaseNr.
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3087
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3088
    "
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3089
     self fileVersion
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3090
    "
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3091
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  3092
    "Modified: / 30-08-2006 / 18:51:49 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3093
!
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3094
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3095
fileVersionCommaSeparated
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3096
    "Returns a fileVersion string which will appear in libName.rc"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3097
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  3098
    "<major>,<minor>,<revision>,<release> (such as '2,17,1,2') "
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  3099
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3100
    ^ '%1,%2,%3,%4'
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3101
        bindWith:self fileMajorVersionNr
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3102
        with:self fileMinorVersionNr
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3103
        with:self fileRevisionNr
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3104
        with:self fileReleaseNr.
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3105
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3106
    "Created: / 17-08-2006 / 20:16:17 / cg"
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  3107
    "Modified: / 30-08-2006 / 18:54:20 / cg"
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  3108
!
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  3109
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3110
internalName
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3111
    "Returns a name string which will appear in libName.rc"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3112
11041
3bb26d86e616 Fix #description and #internalName
Stefan Vogel <sv@exept.de>
parents: 11039
diff changeset
  3113
    ^ self package
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3114
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3115
    "Modified: / 17-08-2006 / 20:27:37 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3116
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3117
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3118
legalCopyright
9584
40fa96f1313a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9579
diff changeset
  3119
    "Returns a copyright string which will appear in <lib>.rc.
20564
c9f47a3f5e9c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20550
diff changeset
  3120
     Under win32, this is placed into the dll's file-info.
c9f47a3f5e9c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20550
diff changeset
  3121
     Other systems may put it elsewhere, or ignore it."
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3122
20985
76eb19c9242e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20982
diff changeset
  3123
    |m thisYear template|
20601
2308f69ba99c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20590
diff changeset
  3124
     
20985
76eb19c9242e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20982
diff changeset
  3125
    m := self module.
76eb19c9242e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20982
diff changeset
  3126
    thisYear := Date today year.
76eb19c9242e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20982
diff changeset
  3127
20601
2308f69ba99c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20590
diff changeset
  3128
    m = 'stx' ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3129
        "hardwired-default"
20985
76eb19c9242e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20982
diff changeset
  3130
        template := 'Copyright Claus Gittinger %1\nCopyright eXept Software AG %1' 
76eb19c9242e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20982
diff changeset
  3131
    ] ifFalse:[
76eb19c9242e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20982
diff changeset
  3132
        m = 'exept' ifTrue:[
76eb19c9242e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20982
diff changeset
  3133
            "hardwired-default"
76eb19c9242e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20982
diff changeset
  3134
            template := 'Copyright eXept Software AG %1' 
76eb19c9242e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20982
diff changeset
  3135
        ] ifFalse:[
76eb19c9242e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20982
diff changeset
  3136
            template := 'My CopyRight or CopyLeft %1'
76eb19c9242e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20982
diff changeset
  3137
        ].
76eb19c9242e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20982
diff changeset
  3138
    ].
76eb19c9242e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20982
diff changeset
  3139
    ^ template bindWith:thisYear
76eb19c9242e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20982
diff changeset
  3140
76eb19c9242e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20982
diff changeset
  3141
    "
76eb19c9242e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20982
diff changeset
  3142
     self legalCopyright
76eb19c9242e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20982
diff changeset
  3143
    "
76eb19c9242e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20982
diff changeset
  3144
76eb19c9242e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20982
diff changeset
  3145
    "Modified (comment): / 18-11-2016 / 12:23:36 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3146
!
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
majorVersionNr
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3149
    "Returns a versionNumber which will appear in libName.rc"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3150
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3151
    "<major>.<minor>.<revision>.<release> (such as '5.3.2.1')
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3152
     the default here takes smalltalks version number.
20424
997f83bb29f8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20152
diff changeset
  3153
     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
  3154
11042
686cd566a2b1 Fix version stuff
Stefan Vogel <sv@exept.de>
parents: 11041
diff changeset
  3155
    ^ Smalltalk majorVersionNr
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3156
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3157
    "Created: / 17-08-2006 / 20:20:18 / cg"
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  3158
    "Modified: / 30-08-2006 / 18:52:13 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3159
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3160
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3161
minorVersionNr
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3162
    "Returns a versionNumber which will appear in libName.rc"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3163
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3164
    "<major>.<minor>.<revision>.<release> (such as '5.3.2.1')
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3165
     the default here takes smalltalks version number.
20424
997f83bb29f8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20152
diff changeset
  3166
     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
  3167
11042
686cd566a2b1 Fix version stuff
Stefan Vogel <sv@exept.de>
parents: 11041
diff changeset
  3168
    ^ Smalltalk minorVersionNr
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3169
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3170
    "Created: / 17-08-2006 / 20:20:32 / cg"
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  3171
    "Modified: / 30-08-2006 / 18:52:16 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3172
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3173
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3174
productDate
11043
eb2bd420e952 Fix version stuff
Stefan Vogel <sv@exept.de>
parents: 11042
diff changeset
  3175
    "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
  3176
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3177
    "take the current date - by default"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3178
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3179
    ^ Timestamp now printStringRFC1123Format
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3180
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3181
    "Created: / 17-08-2006 / 20:17:28 / cg"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3182
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3183
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3184
productDescription
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3185
    "Returns a description (for autopackage)"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3186
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3187
    ^ self description
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3188
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3189
    "Created: / 21-12-2010 / 09:32:16 / cg"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3190
!
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3191
10426
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3192
productFilename
20546
92618d700b74 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20527
diff changeset
  3193
    "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
  3194
     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
  3195
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3196
    ^ self productNameAsValidFilename
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3197
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3198
    "
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3199
     stx_projects_smalltalk productName
10426
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3200
     stx_projects_smalltalk productFilename
20546
92618d700b74 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20527
diff changeset
  3201
     stx_libbasic productFilename
92618d700b74 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20527
diff changeset
  3202
     stx_doc_coding_demoConsoleApp productFilename
10426
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3203
    "
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3204
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3205
    "Created: / 01-03-2007 / 19:33:06 / cg"
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3206
!
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3207
9898
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3208
productInstallDir
13873
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  3209
    "Returns a default installDir which will appear in <app>.nsi."
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  3210
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  3211
    ^ '$PROGRAMFILES\',(self productInstallDirBaseName).
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  3212
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  3213
    "
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  3214
     stx_projects_smalltalk productInstallDir
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  3215
     stx_clients_Clock_QlockTwoWatchApplication productInstallDir
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  3216
    "
9898
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3217
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3218
    "Created: / 14-09-2006 / 21:23:01 / cg"
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3219
!
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3220
13873
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  3221
productInstallDirBaseName
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  3222
    "Returns a default installDir which will appear in <app>.nsi.
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  3223
     This is usually not the one you want to keep"
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  3224
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  3225
    ^ self module
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  3226
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  3227
    "Created: / 21-12-2011 / 16:31:38 / cg"
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  3228
!
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  3229
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3230
productLicense
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3231
    "Returns the license (for autopackage)"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3232
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3233
    ^ 'Commercial'
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3234
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3235
    "Created: / 21-12-2010 / 09:31:25 / cg"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3236
!
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3237
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3238
productMaintainer
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3239
    "Returns the maintainer (for autopackage)"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3240
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3241
    ^ self companyName
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3242
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3243
    "Created: / 21-12-2010 / 09:26:16 / cg"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3244
!
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3245
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3246
productName
9584
40fa96f1313a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9579
diff changeset
  3247
    "Returns a product name which will appear in <lib>.rc.
20564
c9f47a3f5e9c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20550
diff changeset
  3248
     Under win32, this is placed into the dll's file-info.
15216
5bea466a1c61 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15202
diff changeset
  3249
     This method is usually redefined in a concrete application definition"
5bea466a1c61 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15202
diff changeset
  3250
21683
85425e233684 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 21571
diff changeset
  3251
    |m|
10785
da5023cdf55b no need for productName string (already inherited)
Claus Gittinger <cg@exept.de>
parents: 10774
diff changeset
  3252
da5023cdf55b no need for productName string (already inherited)
Claus Gittinger <cg@exept.de>
parents: 10774
diff changeset
  3253
    m := self module.
da5023cdf55b no need for productName string (already inherited)
Claus Gittinger <cg@exept.de>
parents: 10774
diff changeset
  3254
    m = 'stx' ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3255
        ^ 'Smalltalk/X'
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3256
    ].
10785
da5023cdf55b no need for productName string (already inherited)
Claus Gittinger <cg@exept.de>
parents: 10774
diff changeset
  3257
    m = 'exept' ifTrue:[
20982
32144b4ff22c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20952
diff changeset
  3258
        ^ 'eXept AddOns'
10785
da5023cdf55b no need for productName string (already inherited)
Claus Gittinger <cg@exept.de>
parents: 10774
diff changeset
  3259
    ].
21683
85425e233684 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 21571
diff changeset
  3260
    ^ nil.
10296
48eb9cc9eef0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10251
diff changeset
  3261
20982
32144b4ff22c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20952
diff changeset
  3262
    "Modified: / 18-11-2016 / 11:44:03 / cg"
21683
85425e233684 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 21571
diff changeset
  3263
    "Modified: / 03-04-2017 / 19:09:22 / stefan"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3264
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3265
10426
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3266
productNameAsValidFilename
20546
92618d700b74 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20527
diff changeset
  3267
    "Returns a filename generated from the product name.
92618d700b74 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20527
diff changeset
  3268
     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
  3269
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3270
    |nm|
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3271
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3272
    nm := self productName.
20546
92618d700b74 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20527
diff changeset
  3273
    ^ nm copy replaceAny:'/\:;., ' with:$_
10426
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3274
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3275
    "
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3276
     'Smalltalk/X' replaceAny:'/\:;.,' with:nil
20546
92618d700b74 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20527
diff changeset
  3277
     stx_doc_coding_demoConsoleApp productName
92618d700b74 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20527
diff changeset
  3278
     stx_doc_coding_demoConsoleApp productNameAsValidFilename
10426
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3279
    "
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3280
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3281
    "Created: / 01-03-2007 / 19:19:21 / cg"
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3282
!
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3283
9898
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3284
productPublisher
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3285
    "Returns a product publisher which will appear in <app>.nsi."
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3286
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3287
    ( #('exept' 'stx') includes:self module) ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3288
        ^ 'eXept Software AG'
9898
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3289
    ].
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3290
11789
8d56dc5fa8a8 Default productPublisher is companyName
Stefan Vogel <sv@exept.de>
parents: 11777
diff changeset
  3291
    ^ self companyName
9898
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3292
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3293
    "Created: / 14-09-2006 / 21:12:54 / cg"
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3294
!
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3295
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3296
productType
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3297
    "Returns the product type for autopackage"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3298
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3299
    ^ 'Application'
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3300
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3301
    "Created: / 21-12-2010 / 09:28:48 / cg"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3302
!
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3303
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3304
productVersion
11043
eb2bd420e952 Fix version stuff
Stefan Vogel <sv@exept.de>
parents: 11042
diff changeset
  3305
    "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
  3306
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3307
    "<major>.<minor>.<revision>.<release> (such as '5.3.2.1')"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3308
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3309
    ^ '%1.%2.%3.%4'
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3310
        bindWith:self majorVersionNr
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3311
        with:self minorVersionNr
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3312
        with:self revisionNr
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3313
        with:self releaseNr.
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3314
9575
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
     self productVersion
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3317
    "
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3318
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  3319
    "Modified: / 30-08-2006 / 18:52:47 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3320
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3321
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3322
productVersionCommaSeparated
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3323
    "Returns a product version which will appear in libName.rc"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3324
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3325
    "<major>.<minor>.<revision>.<release> (such as '0,1,1,1') "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3326
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3327
    ^ '%1,%2,%3,%4'
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3328
        bindWith:self majorVersionNr
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3329
        with:self minorVersionNr
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3330
        with:self revisionNr
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3331
        with:self releaseNr.
11042
686cd566a2b1 Fix version stuff
Stefan Vogel <sv@exept.de>
parents: 11041
diff changeset
  3332
686cd566a2b1 Fix version stuff
Stefan Vogel <sv@exept.de>
parents: 11041
diff changeset
  3333
    "
686cd566a2b1 Fix version stuff
Stefan Vogel <sv@exept.de>
parents: 11041
diff changeset
  3334
     self productVersionCommaSeparated
686cd566a2b1 Fix version stuff
Stefan Vogel <sv@exept.de>
parents: 11041
diff changeset
  3335
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3336
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3337
    "Created: / 17-08-2006 / 20:13:32 / cg"
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  3338
    "Modified: / 30-08-2006 / 18:52:42 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3339
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3340
9898
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3341
productWebSite
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3342
    "Returns a product webSite which will appear in <app>.nsi."
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3343
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3344
    ( #('exept' 'stx') includes:self module) ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3345
        ^ 'http://www.exept.de'
9898
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3346
    ].
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3347
10426
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3348
    "/ should be redefined by concrete ApplicationDefinition
9898
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3349
    ^ 'http://www.yoursite.com'
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3350
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3351
    "Created: / 14-09-2006 / 21:15:05 / cg"
10426
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3352
    "Modified: / 01-03-2007 / 18:11:27 / cg"
9898
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3353
!
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3354
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3355
releaseNr
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3356
    "Returns a releaseNr which will appear in libName.rc"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3357
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3358
    "<major>.<minor>.<revision>.<release> (such as '5.3.2.1')
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3359
     the default here takes smalltalks version number.
20424
997f83bb29f8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20152
diff changeset
  3360
     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
  3361
11042
686cd566a2b1 Fix version stuff
Stefan Vogel <sv@exept.de>
parents: 11041
diff changeset
  3362
    ^ Smalltalk releaseNr
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3363
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3364
    "Created: / 17-08-2006 / 20:20:51 / cg"
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  3365
    "Modified: / 30-08-2006 / 18:52:22 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3366
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3367
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3368
revisionNr
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3369
    "Returns a revisionNr which will appear in libName.rc"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3370
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3371
    "<major>.<minor>.<revision>.<release> (such as '5.3.2.1')
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3372
     the default here takes smalltalks version number.
20424
997f83bb29f8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20152
diff changeset
  3373
     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
  3374
11042
686cd566a2b1 Fix version stuff
Stefan Vogel <sv@exept.de>
parents: 11041
diff changeset
  3375
    ^ Smalltalk revisionNr
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3376
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3377
    "Created: / 17-08-2006 / 20:20:40 / cg"
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  3378
    "Modified: / 30-08-2006 / 18:52:32 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3379
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3380
17236
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
  3381
supportedLanguages
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
  3382
    "Returns a list of languages that (should be / are) supported by this application or library.
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
  3383
     Currently this is only used by lint, to verify that the corresponding languages are 
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
  3384
     present in the resource files."
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
  3385
19656
2e77e4aa1575 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 19627
diff changeset
  3386
    self module = 'stx' ifTrue:[
2e77e4aa1575 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 19627
diff changeset
  3387
        ^ #(en de)
2e77e4aa1575 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 19627
diff changeset
  3388
    ].    
17236
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
  3389
    ^ #(en)
19656
2e77e4aa1575 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 19627
diff changeset
  3390
2e77e4aa1575 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 19627
diff changeset
  3391
    "
2e77e4aa1575 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 19627
diff changeset
  3392
     stx_goodies_rdoit supportedLanguages
2e77e4aa1575 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 19627
diff changeset
  3393
     cg_tools supportedLanguages
2e77e4aa1575 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 19627
diff changeset
  3394
    "
17236
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
  3395
!
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
  3396
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3397
versionNumber
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3398
    "Returns a version string which will appear in bc.def / vc.def "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3399
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3400
    ^''
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3401
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3402
    "Created: / 08-08-2006 / 11:35:52 / fm"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3403
    "Modified: / 17-08-2006 / 19:46:29 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3404
! !
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3405
16854
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3406
!ProjectDefinition class methodsFor:'doc generation'!
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3407
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3408
autoDocClassNamePatterns
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3409
    "lists patterns for class names for which autodoc html-documentation files
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3410
     are to be built.
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3411
     Return #( '*' ) to get doc files for all classes"
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3412
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3413
    ^ #(
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3414
        '*'
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3415
    )
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3416
!
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3417
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3418
generate_autoDocFiles
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3419
    "generate html documentation for all classes matching the autoDocNamePatterns.
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3420
     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
  3421
     to be deployed."
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3422
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3423
    self classes do:[:eachClass |
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3424
        (self autoDocClassNamePatterns contains:[:pattern | pattern match:eachClass name]) ifTrue:[
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3425
            self generateClassDocumentationFor:eachClass.
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3426
        ]
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3427
    ].
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3428
! !
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3429
9569
b0bf179c9bf5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9559
diff changeset
  3430
!ProjectDefinition class methodsFor:'file generation'!
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3431
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3432
apspecFilename
13968
03b79717bd2b comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13959
diff changeset
  3433
    "/ for linux
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3434
    ^ 'autopackage/default.apspec'
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3435
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3436
    "Created: / 21-12-2010 / 09:43:13 / cg"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3437
!
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3438
9852
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
  3439
basicFileNamesToGenerate
22387
9f14f5b840d0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22333
diff changeset
  3440
    "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
  3441
     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
  3442
17303
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
  3443
    | dict cls |
10864
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  3444
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3445
    dict := OrderedDictionary withKeysAndValues:#(
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3446
          'Make.spec'         #'generate_make_dot_spec'
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3447
          'Make.proto'        #'generate_make_dot_proto'
15201
22f01101bac5 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15173
diff changeset
  3448
          "/ cg: changed to generate Makefile.init instead of Makefile,
22f01101bac5 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15173
diff changeset
  3449
          "/     because macosx files are not case sensitive.
22f01101bac5 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15173
diff changeset
  3450
          "/ You will have to execute make -f Makefile.init initially
22f01101bac5 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15173
diff changeset
  3451
          "/ 'Makefile'          #'generate_makefile'          "/ for unix
22f01101bac5 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15173
diff changeset
  3452
          'Makefile.init'     #'generate_makefile'          "/ for unix
13968
03b79717bd2b comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13959
diff changeset
  3453
          'bc.mak'            #'generate_bc_dot_mak'        "/ for windows
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3454
          'abbrev.stc'        #'generate_abbrev_dot_stc'
13968
03b79717bd2b comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13959
diff changeset
  3455
          'bmake.bat'         #'generate_bmake_dot_mak'     "/ for bcc32
03b79717bd2b comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13959
diff changeset
  3456
          'vcmake.bat'        #'generate_vcmake_dot_mak'    "/ for msvc
18575
28f0064a1620 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 18574
diff changeset
  3457
          "/ 'lccmake.bat'       #'generate_lccmake_dot_mak'   "/ for lcc - not supported at the moment
14345
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  3458
          "/ 'tccmake.bat'       #'generate_tccmake_dot_mak'     "/ for tcc - cannot link at the moment
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  3459
          '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
  3460
    ).
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  3461
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3462
    dict
14060
cefb6d8205e4 changed:
Stefan Vogel <sv@exept.de>
parents: 14045
diff changeset
  3463
        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
  3464
22387
9f14f5b840d0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22333
diff changeset
  3465
    "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
  3466
    cls := self.
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
  3467
    [ cls ~~ Object ] whileTrue:[
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
  3468
        cls class selectorsAndMethodsDo:[:selector :method |
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
  3469
            | annotation |
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
  3470
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
  3471
            annotation := method annotationAt: #file:overwrite:.
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
  3472
            annotation notNil ifTrue:[ 
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
  3473
                dict at: (annotation argumentAt: 1) put: selector
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
  3474
            ].
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
  3475
        ].
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
  3476
        cls := cls superclass.
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
  3477
    ].
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
  3478
10864
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  3479
    ^ dict.
13154
bac0fcd8a888 make sure that the makefiles are generated before the libInit file
Claus Gittinger <cg@exept.de>
parents: 13148
diff changeset
  3480
17303
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
  3481
    "
22387
9f14f5b840d0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22333
diff changeset
  3482
     stx_libbasic basicFileNamesToGenerate
9f14f5b840d0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22333
diff changeset
  3483
     stx_libjava basicFileNamesToGenerate
9f14f5b840d0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22333
diff changeset
  3484
    "
9f14f5b840d0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22333
diff changeset
  3485
17303
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
  3486
    "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
  3487
    "Modified (comment): / 04-12-2017 / 17:40:03 / cg"
9852
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
  3488
!
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
  3489
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3490
fileNamesToGenerate
22387
9f14f5b840d0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22333
diff changeset
  3491
    "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
  3492
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  3493
    ^ self basicFileNamesToGenerate removeAllKeys:self protectedFileNames ifAbsent:[]
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  3494
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  3495
    "
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  3496
      stx_libbasic fileNamesToGenerate
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  3497
    "
22387
9f14f5b840d0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22333
diff changeset
  3498
9f14f5b840d0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22333
diff changeset
  3499
    "Modified (comment): / 04-12-2017 / 17:40:23 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3500
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3501
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3502
forEachFileNameAndGeneratedContentsDo:aTwoArgBlock
14930
5fe8a9868547 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14911
diff changeset
  3503
    "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
  3504
     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
  3505
9544
5ee38738942e *** empty log message ***
fm
parents: 9541
diff changeset
  3506
    |pairs|
5ee38738942e *** empty log message ***
fm
parents: 9541
diff changeset
  3507
5ee38738942e *** empty log message ***
fm
parents: 9541
diff changeset
  3508
    pairs := OrderedCollection new.
23123
a120d0418bd7 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23112
diff changeset
  3509
    self fileNamesToGenerate keysDo:[:fileName |
a120d0418bd7 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23112
diff changeset
  3510
        |fileContents|
a120d0418bd7 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23112
diff changeset
  3511
a120d0418bd7 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23112
diff changeset
  3512
        fileContents := self generateFile:fileName.
a120d0418bd7 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23112
diff changeset
  3513
        fileContents notNil ifTrue:[
a120d0418bd7 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23112
diff changeset
  3514
            pairs add:(Array with:fileName with:fileContents)
17303
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
  3515
        ].
9544
5ee38738942e *** empty log message ***
fm
parents: 9541
diff changeset
  3516
    ].
5ee38738942e *** empty log message ***
fm
parents: 9541
diff changeset
  3517
5ee38738942e *** empty log message ***
fm
parents: 9541
diff changeset
  3518
    pairs pairsDo:aTwoArgBlock
5ee38738942e *** empty log message ***
fm
parents: 9541
diff changeset
  3519
5ee38738942e *** empty log message ***
fm
parents: 9541
diff changeset
  3520
    "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
  3521
    "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
  3522
    "Modified (comment): / 04-12-2017 / 17:40:49 / cg"
9544
5ee38738942e *** empty log message ***
fm
parents: 9541
diff changeset
  3523
!
5ee38738942e *** empty log message ***
fm
parents: 9541
diff changeset
  3524
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3525
generateFile:filename
23123
a120d0418bd7 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23112
diff changeset
  3526
    |action missingNames|
a120d0418bd7 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23112
diff changeset
  3527
a120d0418bd7 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23112
diff changeset
  3528
    (#('bc.mak' 'Make.proto' 'loadAll') includes:filename) ifTrue:[
a120d0418bd7 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23112
diff changeset
  3529
        "if there are missing classes in image, the dependencies cannot be computed.
a120d0418bd7 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23112
diff changeset
  3530
         Warn the user"
a120d0418bd7 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23112
diff changeset
  3531
a120d0418bd7 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23112
diff changeset
  3532
        missingNames := self allClassNames "compiled_classNames"
a120d0418bd7 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23112
diff changeset
  3533
                                    select:[:aName |
a120d0418bd7 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23112
diff changeset
  3534
                                        |cls|
a120d0418bd7 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23112
diff changeset
  3535
a120d0418bd7 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23112
diff changeset
  3536
                                        cls := environment at:aName asSymbol.
a120d0418bd7 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23112
diff changeset
  3537
                                        cls isNil
a120d0418bd7 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23112
diff changeset
  3538
                                    ].
a120d0418bd7 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23112
diff changeset
  3539
        missingNames notEmpty ifTrue:[
a120d0418bd7 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23112
diff changeset
  3540
            (self confirm:(self classResources 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?'
a120d0418bd7 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23112
diff changeset
  3541
                                        with:filename with:(missingNames asStringWith:', ')))
a120d0418bd7 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23112
diff changeset
  3542
            ifFalse:[^ nil].
a120d0418bd7 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23112
diff changeset
  3543
        ].
a120d0418bd7 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23112
diff changeset
  3544
    ].
10864
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  3545
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  3546
    action := self basicFileNamesToGenerate at:filename ifAbsent:[].
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  3547
    action notNil ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3548
        ^ self perform:action
10864
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  3549
    ].
19996
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
  3550
    (filename = 'app.rc' or:[filename = 'lib.rc' or:[filename = self rcFilename]]) ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3551
        ^ self generate_packageName_dot_rc
9607
3cae5cf71c03 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9601
diff changeset
  3552
    ].
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3553
    (filename = 'loadAll') ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3554
        ^ self generate_loadAll
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3555
    ].
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3556
    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
  3557
21569
912c8efa5856 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 21563
diff changeset
  3558
    "Modified: / 24-02-2017 / 11:53:18 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3559
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3560
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3561
generateFile:filename in: directory
16257
5772bfdc494b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16256
diff changeset
  3562
    |dir|
5772bfdc494b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16256
diff changeset
  3563
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3564
    dir := directory asFilename.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3565
    dir exists ifFalse:[self error:'Directory does not exist'].
16257
5772bfdc494b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16256
diff changeset
  3566
5772bfdc494b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16256
diff changeset
  3567
    (dir / (filename asFilename baseName)) contents:(self generateFile: filename).
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3568
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3569
    "
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3570
        stx_projects_smalltalk generateFile:'package.deps.rake' in: '/tmp'
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3571
    "
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3572
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3573
    "Created: / 26-02-2011 / 10:42:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3574
    "Modified: / 09-06-2011 / 14:53:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3575
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3576
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3577
generateRemoveShellScriptOn:aStream
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3578
    "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
  3579
     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
  3580
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3581
    |firstLine|
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3582
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3583
    firstLine := true.
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3584
    self searchForClasses do:[:eachClass|
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
  3585
        eachClass isJavaClass ifFalse:[
0875f5d7c9ce Care for Java classes that are part of a Smalltalk/X package.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16786
diff changeset
  3586
            firstLine ifTrue:[
0875f5d7c9ce Care for Java classes that are part of a Smalltalk/X package.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16786
diff changeset
  3587
                aStream nextPutAll:'cvs rm -f '.
0875f5d7c9ce Care for Java classes that are part of a Smalltalk/X package.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16786
diff changeset
  3588
                firstLine := false.
0875f5d7c9ce Care for Java classes that are part of a Smalltalk/X package.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16786
diff changeset
  3589
            ].
0875f5d7c9ce Care for Java classes that are part of a Smalltalk/X package.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16786
diff changeset
  3590
            eachClass classFilename ~= (eachClass generateClassFilename, '.st') ifTrue:[
0875f5d7c9ce Care for Java classes that are part of a Smalltalk/X package.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16786
diff changeset
  3591
                aStream nextPutAll:eachClass classBaseFilename; space.
0875f5d7c9ce Care for Java classes that are part of a Smalltalk/X package.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16786
diff changeset
  3592
            ]
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3593
        ].
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3594
    ].
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3595
    firstLine ifFalse:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3596
        aStream cr.
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3597
    ].
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3598
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3599
    "
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3600
       stx_goodies_webServer_htmlTree generateRemoveShellScriptOn:Transcript
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3601
    "
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
  3602
0875f5d7c9ce Care for Java classes that are part of a Smalltalk/X package.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16786
diff changeset
  3603
    "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
  3604
!
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3605
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3606
generateRenameShellScriptOn:aStream
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3607
    "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
  3608
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3609
    self searchForClasses do:[:eachClass|
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  3610
        eachClass isJavaClass ifFalse:[
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
  3611
            eachClass classFilename ~= (eachClass generateClassFilename, '.st') ifTrue:[
0875f5d7c9ce Care for Java classes that are part of a Smalltalk/X package.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16786
diff changeset
  3612
                aStream nextPutAll:'cp ';
0875f5d7c9ce Care for Java classes that are part of a Smalltalk/X package.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16786
diff changeset
  3613
                       nextPutAll:eachClass classBaseFilename; nextPutAll:',v ';
0875f5d7c9ce Care for Java classes that are part of a Smalltalk/X package.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16786
diff changeset
  3614
                       nextPutAll:eachClass generateClassFilename; nextPutAll:'.st,v'; cr.
0875f5d7c9ce Care for Java classes that are part of a Smalltalk/X package.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16786
diff changeset
  3615
            ]
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3616
        ]
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3617
    ].
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3618
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3619
    "
11981
e479249ba36e Fix #generateRenameShellScriptOn:
Stefan Vogel <sv@exept.de>
parents: 11980
diff changeset
  3620
       stx_libdb generateRemoveShellScriptOn:Transcript
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3621
    "
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
  3622
0875f5d7c9ce Care for Java classes that are part of a Smalltalk/X package.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16786
diff changeset
  3623
    "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
  3624
!
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3625
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3626
generate_abbrev_dot_stc
13968
03b79717bd2b comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13959
diff changeset
  3627
   "/ 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
  3628
   self checkIfClassesArePresent.
10104
96bce48c03b5 some care for incomplete information bein present when
Claus Gittinger <cg@exept.de>
parents: 10103
diff changeset
  3629
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3630
    ^ String
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3631
        streamContents:[:s |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3632
            |addEntry|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3633
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3634
            addEntry :=
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3635
                [:eachClassName |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3636
                    |cls fn wasLoaded failedToLoad numClassInstvars|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3637
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3638
                    s nextPutAll:eachClassName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3639
                    s nextPutAll:' '.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3640
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3641
                    cls := Smalltalk classNamed:eachClassName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3642
                    cls isNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3643
                        fn := self filenameForClass:eachClassName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3644
                        s nextPutAll:fn.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3645
                        s nextPutAll:' '; nextPutAll:(self package); nextPutAll:' '.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3646
                        s nextPutAll:' '; nextPutAll:'unknownCategory' storeString; nextPutAll:' '.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3647
                        s nextPutAll:' '; nextPutAll:'0'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3648
                    ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3649
                        wasLoaded := cls isLoaded.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3650
                        wasLoaded ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3651
                            failedToLoad := false.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3652
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3653
                            Error handle:[:ex |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3654
                                failedToLoad := true.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3655
                            ] do:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3656
                                ParserFlags
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3657
                                    withSTCCompilation:#never
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3658
                                    do:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3659
                                        cls autoload.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3660
                                    ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3661
                            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3662
                        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3663
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3664
                        fn := self filenameForClass:cls.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3665
                        (fn includes:Character space) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3666
                            s nextPutAll:fn storeString.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3667
                        ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3668
                            s nextPutAll:fn.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3669
                        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3670
                        s nextPutAll:' '; nextPutAll:(self package); nextPutAll:' '.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3671
                        s nextPutAll: (cls category asString storeString).
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3672
                        failedToLoad ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3673
                            s nextPutAll:' 0'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3674
                        ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3675
                            numClassInstvars := cls theMetaclass instSize - Class instSize.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3676
                            s nextPutAll:' '; nextPutAll:numClassInstvars printString.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3677
                        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3678
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3679
                        wasLoaded ifFalse:[
15916
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  3680
                            UserPreferences current autoUnloadAutoloadedClassesInProjectDefinition ifTrue:[
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  3681
                                cls unload
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  3682
                            ]
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3683
                        ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3684
                    ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3685
                    s cr.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3686
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3687
13968
03b79717bd2b comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13959
diff changeset
  3688
            s nextPutLine:'# automagically generated by the project definition'.
03b79717bd2b comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13959
diff changeset
  3689
            s nextPutLine:'# this file is needed for stc to be able to compile modules independently.'.
03b79717bd2b comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13959
diff changeset
  3690
            s nextPutLine:'# it provides information about a classes filename, category and especially namespace.'.
03b79717bd2b comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13959
diff changeset
  3691
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3692
            self allClassNames do:addEntry.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3693
            self namesAndAttributesIn:(self additionalClassNamesAndAttributes) do: [:nm :attr |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3694
                (attr isEmptyOrNil or:[(attr includes:#autoload) not]) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3695
                    addEntry value:nm
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3696
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3697
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3698
        ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3699
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3700
    "
13968
03b79717bd2b comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13959
diff changeset
  3701
        stx_libbasic generate_abbrev_dot_stc
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3702
        DapasXProject generate_abbrev_dot_stc
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3703
        DapasX_Datenbasis generate_abbrev_dot_stc
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3704
        bosch_dapasx_interactiver_editor generate_abbrev_dot_stc
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3705
    "
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3706
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3707
    "Created: / 09-08-2006 / 11:24:39 / fm"
15916
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  3708
    "Modified: / 28-01-2014 / 21:43:56 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3709
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3710
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3711
generate_autopackage_default_dot_apspec
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3712
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3713
    ^self
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3714
        replaceMappings: self autopackage_default_dot_apspec_mappings
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3715
        in: self autopackage_default_dot_apspec
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3716
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3717
    "
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3718
     stx_projects_smalltalk generate_autopackage_default_dot_apspec
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3719
    "
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3720
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3721
    "Created: / 21-12-2010 / 09:40:04 / cg"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3722
!
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3723
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3724
generate_bc_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3725
    ^ (self
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3726
        replaceMappings: self bc_dot_mak_mappings
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3727
        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
  3728
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3729
    "
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3730
     DapasXProject generate_bc_dot_mak
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3731
     DapasX_Datenbasis generate_bc_dot_mak
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3732
    "
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3733
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3734
    "Modified: / 09-08-2006 / 11:46:14 / fm"
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3735
!
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3736
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3737
generate_bmake_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3738
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3739
    ^self replaceMappings: self bmake_dot_mak_mappings
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3740
            in: self bmake_dot_mak
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3741
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3742
    "Created: / 17-08-2006 / 20:03:43 / cg"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3743
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3744
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3745
generate_builder_baseline_dot_rbspec
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3746
    ^ self replaceMappings:self builder_baseline_dot_rbspec_mappings
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3747
        in:self builder_baseline_dot_rbspec
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3748
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3749
    "
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3750
     stx_projects_smalltalk generate_builder_baseline_dot_rbspec
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3751
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3752
    "
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3753
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3754
    "Created: / 24-02-2011 / 11:38:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3755
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3756
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  3757
generate_lccmake_dot_mak
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3758
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3759
    ^self replaceMappings: self bmake_dot_mak_mappings
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  3760
            in: self lccmake_dot_mak
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  3761
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  3762
    "Created: / 03-09-2012 / 19:49:56 / cg"
11979
d2afd6b5fc01 lcc preps
Claus Gittinger <cg@exept.de>
parents: 11940
diff changeset
  3763
!
d2afd6b5fc01 lcc preps
Claus Gittinger <cg@exept.de>
parents: 11940
diff changeset
  3764
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3765
generate_loadAll
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3766
    ^ String
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3767
        streamContents:[:s |
16257
5772bfdc494b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16256
diff changeset
  3768
            |classNames classesLoaded classNamesUnloaded classesSorted|
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3769
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3770
            classNames := self compiled_classNames_common.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3771
            classesLoaded := classNames
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3772
                        collect:[:nm | Smalltalk classNamed:nm]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3773
                        thenSelect:[:cls |  cls notNil and:[cls isLoaded] ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3774
            classNamesUnloaded := classNames
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3775
                        select:[:nm |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3776
                            |cls|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3777
                            cls := Smalltalk classNamed:nm.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3778
                            cls isNil or:[cls isLoaded not]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3779
                        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3780
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3781
            classesSorted := Class classesSortedByLoadOrder:classesLoaded.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3782
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3783
            s nextPutAll:'"/
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3784
"/ $' , 'Header' , '$
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3785
"/
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3786
"/ loadAll-file to fileIn code for: ' , self package , '
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3787
"/
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3788
"/ Automatically generated from the ProjectDefinition.
9911
114cf30d0561 Handle (load) binary class libraryies.
Stefan Vogel <sv@exept.de>
parents: 9909
diff changeset
  3789
"/ DO NOT MODIFY THIS FILE;
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3790
"/
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3791
"/
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3792
"/ Prerequisites:
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3793
"/
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3794
"/ Smalltalk loadPackage:''module:directory''.
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3795
"/ Smalltalk loadPackage:''....''.
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3796
!!
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3797
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3798
"{ package:''' , self package, ''' }"
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3799
!!
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3800
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3801
|files|
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3802
9911
114cf30d0561 Handle (load) binary class libraryies.
Stefan Vogel <sv@exept.de>
parents: 9909
diff changeset
  3803
''loading package ' , self package ,'...'' infoPrint.
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3804
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3805
files := #(
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3806
'.
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3807
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3808
            classesSorted do:[:eachClass |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3809
                s nextPutLine:'  ''' , (self filenameForClass:eachClass), ''''.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3810
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3811
            classNamesUnloaded do:[:nm |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3812
                s nextPutLine:'  ''' , (self filenameForClass:nm), ''''.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3813
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3814
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3815
            self namesAndAttributesIn:(self additionalClassNamesAndAttributes) do:[:nm :attr |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3816
                (attr isEmptyOrNil or:[(attr includes:#autoload) not]) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3817
                    s nextPutLine:'  ''' , (self filenameForClass:nm), ''''.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3818
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3819
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3820
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3821
            self hasExtensionMethods ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3822
                s nextPutLine:'  ''extensions.st'''.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3823
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3824
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3825
            s nextPutAll:'
9911
114cf30d0561 Handle (load) binary class libraryies.
Stefan Vogel <sv@exept.de>
parents: 9909
diff changeset
  3826
).
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3827
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3828
"/ see if there is a classLibrary
9911
114cf30d0561 Handle (load) binary class libraryies.
Stefan Vogel <sv@exept.de>
parents: 9909
diff changeset
  3829
(Smalltalk fileInClassLibrary:''' , (self libraryName) , ''') ifTrue:[
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3830
    |handle loaded|
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3831
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3832
    handle := ObjectFileLoader loadedObjectHandles
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3833
                    detect:[:h | h package = ''' , self package , '''] ifNone:nil.
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3834
    handle ifNotNil:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3835
        loaded := Set new:(handle classes size).
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3836
        handle classes do:[:c| c isMeta ifFalse:[loaded add:c classBaseFilename]].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3837
        files := files \ loaded.
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3838
    ].
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3839
].
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3840
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3841
"/ 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
  3842
files notEmpty ifTrue:[
114cf30d0561 Handle (load) binary class libraryies.
Stefan Vogel <sv@exept.de>
parents: 9909
diff changeset
  3843
  '''' infoPrintCR.
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3844
  files do:[:f |
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3845
    ''.'' infoPrint.
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3846
    f asFilename exists ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3847
        Smalltalk fileIn:f.
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3848
    ] ifFalse:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3849
        Smalltalk fileIn:(''source/'' , f)
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3850
    ]
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3851
  ].
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3852
  '' '' infoPrintCR.
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3853
].
9911
114cf30d0561 Handle (load) binary class libraryies.
Stefan Vogel <sv@exept.de>
parents: 9909
diff changeset
  3854
''done (' , self package ,').'' infoPrintCR.
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3855
'.
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3856
        ].
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3857
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3858
    "Created: / 14-09-2006 / 14:21:31 / cg"
10080
e7a9912eef18 use classBaseFilename
Claus Gittinger <cg@exept.de>
parents: 10076
diff changeset
  3859
    "Modified: / 12-10-2006 / 15:55:00 / cg"
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3860
!
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3861
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3862
generate_make_dot_proto
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3863
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3864
    ^ (self
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3865
        replaceMappings: self make_dot_proto_mappings
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3866
        in: self make_dot_proto) asStringCollection withTabs asString
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3867
9733
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  3868
    "
12428
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  3869
     stx_libbasic2 generate_make_dot_proto
9733
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  3870
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3871
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3872
    "Modified: / 09-08-2006 / 11:31:01 / fm"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3873
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3874
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3875
generate_make_dot_spec
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3876
    ^ (self
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3877
        replaceMappings: self make_dot_spec_mappings
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3878
        in: self make_dot_spec) asStringCollection withTabs asString
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3879
9733
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  3880
    "
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  3881
     DapasXProject generate_make_dot_spec
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  3882
     DapasX_Datenbasis generate_make_dot_spec
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  3883
     bosch_dapasx_kernel_Definition generate_make_dot_spec
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  3884
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3885
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3886
    "Modified: / 09-08-2006 / 11:31:09 / fm"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3887
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3888
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3889
generate_makefile
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3890
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3891
    ^ (self
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3892
        replaceMappings: self makefile_mappings
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3893
        in: self makefile) asStringCollection withTabs asString
12428
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  3894
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  3895
    "
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  3896
     stx_libbasic2 generate_makefile
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  3897
    "
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  3898
!
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  3899
14345
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  3900
generate_mingwmake_dot_mak
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  3901
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  3902
    ^self replaceMappings: self bmake_dot_mak_mappings
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  3903
            in: self mingwmake_dot_mak
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  3904
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  3905
    "Created: / 05-09-2012 / 19:44:07 / cg"
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  3906
!
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  3907
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3908
generate_packageName_dot_rc
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3909
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3910
    ^self replaceMappings: self packageName_dot_rc_mappings
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3911
            in: self packageName_dot_rc
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3912
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3913
"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3914
  bosch_dapasx_datenbasis generate_packageName_dot_rc
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3915
  bosch_dapasx_hw_schnittstellen  generate_packageName_dot_rc
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3916
  stx_libbasic3 generate_packageName_dot_rc
9618
adc627ef4702 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9615
diff changeset
  3917
  stx_libwidg3 generate_packageName_dot_rc
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3918
  stx_libwidg3 productVersion
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3919
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3920
"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3921
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3922
    "Modified: / 09-08-2006 / 11:31:09 / fm"
9618
adc627ef4702 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9615
diff changeset
  3923
    "Modified: / 21-08-2006 / 19:33:21 / cg"
9831
02b8fd184e2b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9829
diff changeset
  3924
!
02b8fd184e2b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9829
diff changeset
  3925
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3926
generate_package_dot_deps_dot_rake
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3927
    ^ (self replaceMappings:self package_dot_deps_dot_rake_mappings
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3928
        in:self package_dot_deps_dot_rake) asStringCollection
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3929
        withTabs asString
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3930
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3931
    "
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3932
     stx_libjava generate_dependencies_dot_rake"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3933
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3934
    "Created: / 24-02-2011 / 22:32:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3935
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3936
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  3937
generate_tccmake_dot_mak
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  3938
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  3939
    ^self replaceMappings: self bmake_dot_mak_mappings
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  3940
            in: self tccmake_dot_mak
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  3941
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  3942
    "Created: / 03-09-2012 / 19:50:25 / cg"
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  3943
!
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  3944
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3945
generate_vcmake_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3946
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3947
    ^self replaceMappings: self bmake_dot_mak_mappings
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3948
            in: self vcmake_dot_mak
11937
622f2641439d vcmake.bat generation
Claus Gittinger <cg@exept.de>
parents: 11869
diff changeset
  3949
!
622f2641439d vcmake.bat generation
Claus Gittinger <cg@exept.de>
parents: 11869
diff changeset
  3950
23112
fdda70eb1871 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 23051
diff changeset
  3951
nsiFilename
fdda70eb1871 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 23051
diff changeset
  3952
    "only applications define it"
fdda70eb1871 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 23051
diff changeset
  3953
    
fdda70eb1871 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 23051
diff changeset
  3954
    ^ nil.
fdda70eb1871 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 23051
diff changeset
  3955
fdda70eb1871 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 23051
diff changeset
  3956
    "Created: / 18-06-2018 / 14:07:43 / Claus Gittinger"
fdda70eb1871 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 23051
diff changeset
  3957
!
fdda70eb1871 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 23051
diff changeset
  3958
9852
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
  3959
protectedFileNames
13178
07e3a9bb37c8 changed: #protectedFileNames
Claus Gittinger <cg@exept.de>
parents: 13177
diff changeset
  3960
    "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
  3961
     - 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
  3962
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
  3963
    ^ #()
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
  3964
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
  3965
    "Created: / 14-09-2006 / 14:38:40 / cg"
13178
07e3a9bb37c8 changed: #protectedFileNames
Claus Gittinger <cg@exept.de>
parents: 13177
diff changeset
  3966
    "Modified: / 21-12-2010 / 11:36:46 / cg"
9852
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
  3967
!
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
  3968
9831
02b8fd184e2b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9829
diff changeset
  3969
rcFilename
19996
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
  3970
    ^ self fullPackageName,'WINrc.rc'.
9831
02b8fd184e2b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9829
diff changeset
  3971
02b8fd184e2b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9829
diff changeset
  3972
    "Created: / 07-09-2006 / 17:07:00 / cg"
19996
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
  3973
!
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
  3974
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
  3975
resourceFilename
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
  3976
    ^ (self rcFilename asFilename withSuffix:'$(RES)') name
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
  3977
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
  3978
    "Created: / 07-09-2006 / 17:12:53 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3979
! !
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3980
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  3981
!ProjectDefinition class methodsFor:'file mappings'!
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3982
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3983
autopackage_default_dot_apspec_mappings
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3984
    |mappings|
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3985
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3986
    mappings := Dictionary new.
16257
5772bfdc494b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16256
diff changeset
  3987
    ^ mappings
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
  3988
        at: 'TOP' put: (self pathToTopWithSeparator:'/');                 "/ unix here
14339
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
  3989
"/        at: 'MODULE_PATH' put: ( self moduleDirectory );        "/ unix here
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3990
        at: 'DESCRIPTION' put: (self description);
20550
66bb5e013497 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20546
diff changeset
  3991
        at: 'PRODUCT_NAME' put: (self productName);
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3992
        at: 'PRODUCT_VERSION' put: (self productVersion);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3993
        at: 'PRODUCT_DATE' put: (self productDate);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3994
        at: 'PRODUCT_PUBLISHER' put: (self productPublisher);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3995
        at: 'PRODUCT_WEBSITE' put: (self productWebSite);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3996
        at: 'PRODUCT_INSTALLDIR' put: (self productInstallDir);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3997
        at: 'PRODUCT_TYPE' put: (self productType);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3998
        at: 'PRODUCT_LICENSE' put: (self productLicense);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3999
        at: 'PRODUCT_DESCRIPTION' put: (self productDescription);
20550
66bb5e013497 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20546
diff changeset
  4000
        at: 'PRODUCT_CPU_VERSIONS' put: 'x86';
66bb5e013497 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20546
diff changeset
  4001
        at: 'PRODUCT_ROOT_NAME' put: (self productName);
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4002
        at: 'MAINTAINER' put: (self productMaintainer);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4003
        at: 'PACKAGER' put: (self productPublisher);
20550
66bb5e013497 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20546
diff changeset
  4004
        at: 'ADDITIONAL_SOURCE_DIRS' put: '';
66bb5e013497 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20546
diff changeset
  4005
        at: 'ADDITIONAL_COPYFILES' put: '';
66bb5e013497 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20546
diff changeset
  4006
        at: 'ADDITIONAL_INSTALL' put: '';
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4007
        yourself.
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4008
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4009
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4010
    "Created: / 21-12-2010 / 09:00:49 / cg"
14339
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
  4011
    "Modified: / 05-09-2012 / 10:09:06 / cg"
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4012
!
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4013
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  4014
bc_dot_mak_mappings
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  4015
    |d|
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  4016
14337
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  4017
    d := self common_mappings.
14944
fee38275e385 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14939
diff changeset
  4018
    ^ d
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
  4019
        at: 'TOP' put: ( self pathToTopWithSeparator:'\' );                "/ win32 here
14339
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
  4020
        at: 'MODULE_PATH' put: ( self moduleDirectory_win32 );  "/ win32 here
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4021
        at: 'PRIMARY_TARGET' put: (self primaryTarget_bc_dot_mak);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4022
        at: 'ADDITIONAL_BASE_ADDRESS_DEFINITION' put: (self additionalBaseAddressDefinition_bc_dot_mak ? '');
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4023
        at: 'ADDITIONAL_DEFINITIONS' put: (self additionalDefinitions_bc_dot_mak ? '');
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4024
        at: 'ADDITIONAL_HEADERRULES' put: (self additionalHeaderRules_bc_dot_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
  4025
        at: 'ADDITIONAL_RULES' put: (self additionalRulesFor: 'bc.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
  4026
        at: 'ADDITIONAL_RULES_HG' put: (self additionalRulesHG_bc_dot_mak ? '');
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4027
        at: 'ADDITIONAL_TARGETS' put: (self additionalTargets_bc_dot_mak ? '');
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4028
        at: 'ADDITIONAL_LINK_LIBRARIES' put: (self additionalLinkLibraries_bc_dot_mak ? '');
19592
724f8970b021 #FEATURE by sr
sr
parents: 19587
diff changeset
  4029
        at: 'ADDITIONAL_POSTNSISRULES' put: (self additional_post_nsis_rules);  "/ win32 bc here    
724f8970b021 #FEATURE by sr
sr
parents: 19587
diff changeset
  4030
        at: 'ADDITIONAL_POSTNSISRULES64' put: (self additional_post_nsis_rules64);  "/ win64 mingw here    
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4031
        at: 'LOCAL_INCLUDES' put: (self generateLocalIncludes_win32 ? '');
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4032
        at: 'LOCAL_DEFINES' put: self localDefines_win32 ? '';
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4033
        at: 'GLOBAL_DEFINES' put: self globalDefines_win32 ? '';
14944
fee38275e385 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14939
diff changeset
  4034
        yourself.
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  4035
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  4036
    "Created: / 18-08-2006 / 11:43:39 / cg"
14339
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
  4037
    "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
  4038
    "Modified: / 03-02-2015 / 07:28:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
18428
398263d5137c class: ProjectDefinition
sr
parents: 18323
diff changeset
  4039
    "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
  4040
!
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  4041
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  4042
bmake_dot_mak_mappings
14337
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  4043
    ^ self common_mappings
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
  4044
        at:'TOP' put: ( self pathToTopWithSeparator:'\' );
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4045
        at:'SUBPROJECT_BMAKE_CALLS' put:(self subProjectBmakeCalls);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4046
        at:'SUBPROJECT_VCMAKE_CALLS' put:(self subProjectVCmakeCalls);
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4047
        at:'SUBPROJECT_LCCMAKE_CALLS' put:(self subProjectLCCmakeCalls);
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4048
        at:'SUBPROJECT_TCCMAKE_CALLS' put:(self subProjectTCCmakeCalls);
14345
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4049
        at:'SUBPROJECT_MINGWMAKE_CALLS' put:(self subProjectMingwmakeCalls);
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4050
        yourself
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  4051
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  4052
    "Created: / 17-08-2006 / 21:41:56 / cg"
14345
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4053
    "Modified: / 05-09-2012 / 19:45:36 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  4054
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  4055
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4056
builder_baseline_dot_rbspec_mappings
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4057
    |mappings|
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4058
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4059
    mappings := Dictionary new.
16257
5772bfdc494b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16256
diff changeset
  4060
    ^ mappings
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4061
        at:'APPLICATION' put:(self perform:#applicationName ifNotUnderstood:[self packageName]);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4062
        at:'APPLICATION_PACKAGE' put:self package printString;
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4063
        at:'PREAMBLE' put:self builder_baseline_dot_rbspec_preamble;
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4064
        at:'POSTAMBLE' put:self builder_baseline_dot_rbspec_postamble;
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4065
        at:'PACKAGES' put:self builder_baseline_dot_rbspec_packages;
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4066
        yourself.
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4067
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4068
    "Modified: / 21-12-2010 / 11:00:22 / cg"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4069
    "Created: / 24-02-2011 / 11:58:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4070
    "Modified: / 09-06-2011 / 14:55:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4071
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4072
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4073
builder_baseline_dot_rbspec_packages
19955
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  4074
    ^ String streamContents:[:s |
20023
c91a69e8f369 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19996
diff changeset
  4075
        self allPreRequisitesSorted do: [:packageId |
19955
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  4076
            s nextPutLine:('  package "%1"' bindWith:packageId).
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  4077
        ] 
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  4078
    ].
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4079
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4080
    "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
  4081
    "Modified: / 06-06-2016 / 14:32:44 / cg"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4082
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4083
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4084
classLine_mappings:aClassName
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4085
    ^ Dictionary new
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4086
        at:'CLASS' put:(self st2c:aClassName);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4087
        yourself
9962
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  4088
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  4089
    "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
  4090
    "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
  4091
!
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  4092
14337
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  4093
common_mappings
10299
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  4094
    ^ Dictionary new
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4095
        at: 'TAB' put: ( Character tab asString );
14339
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
  4096
        at: 'TOP' put: ( 'depends-on-file(unix vs. win32)' );       "/ must be in specific mapping
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4097
        at: 'LIBRARY_NAME' put: ( self libraryName );
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4098
        at: 'SUBDIRECTORIES' put: (self generateSubDirectories);
14337
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  4099
        at: 'MODULE' put: ( self module );
14339
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
  4100
        at: 'MODULE_DIRECTORY' put: ( self moduleDirectory );           "/ always unix format
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
  4101
        at: 'MODULE_PATH' put: ( 'depends-on-file(unix vs. win32)' );   "/ must be in specific mapping
14337
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  4102
        yourself
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  4103
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  4104
    "Created: / 04-09-2012 / 13:04:26 / cg"
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  4105
!
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  4106
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  4107
make_dot_proto_mappings
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  4108
    ^ self common_mappings
14339
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
  4109
        at: 'MODULE' put: ( self module );
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
  4110
        at: 'MODULE_DIRECTORY' put: ( self moduleDirectory );
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
  4111
        at: 'MODULE_PATH' put: ( self moduleDirectory );
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
  4112
        at: 'TOP' put: ( self pathToTopWithSeparator:'/' );
14339
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
  4113
        at: 'SUBDIRECTORIES' put: (self generateSubDirectories);
14337
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  4114
        at: 'LIBRARY_NAME' put: ( self libraryName );
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4115
        at: 'LOCAL_INCLUDES' put: (self generateLocalIncludes_unix);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4116
        at: 'LOCAL_DEFINES' put: self localDefines_unix;
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4117
        at: 'GLOBAL_DEFINES' put: self globalDefines_unix;
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4118
        at: 'COMMONSYMFLAG' put: (self commonSymbolsFlag);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4119
        at: 'HEADEROUTPUTARG' put: (self headerFileOutputArg);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4120
        at: 'PRIMARY_TARGET' put: (self primaryTarget_make_dot_proto);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4121
        at: 'ADDITIONAL_DEFINITIONS' put: (self additionalDefinitions_make_dot_proto);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4122
        at: 'ADDITIONAL_HEADERRULES' put: (self additionalHeaderRules_make_dot_proto);
17366
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  4123
        at: 'ADDITIONAL_RULES' put: (self additionalRulesFor: 'Make.proto');
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4124
        at: 'ADDITIONAL_RULES_SVN' put: (self additionalRulesSvn_make_dot_proto);
14859
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  4125
        at: 'ADDITIONAL_RULES_HG' put: (self additionalRulesHG_make_dot_proto);
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4126
        at: 'ADDITIONAL_TARGETS' put: (self additionalTargets_make_dot_proto);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4127
        at: 'ADDITIONAL_TARGETS_SVN' put: (self additionalTargetsSvn_make_dot_proto);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4128
        at: 'ADDITIONAL_LINK_LIBRARIES' put: (self additionalLinkLibraries_make_dot_proto);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4129
        at: 'ADDITIONAL_SHARED_LINK_LIBRARIES' put: (self additionalSharedLinkLibraries_make_dot_proto);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4130
        at: 'DEPENDENCIES' put: (self generateDependencies_unix);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4131
        yourself
10299
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  4132
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  4133
    "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
  4134
    "Modified: / 09-08-2006 / 16:44:48 / fm"
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  4135
    "Modified: / 24-06-2009 / 21:50:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
14339
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
  4136
    "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
  4137
    "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
  4138
!
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  4139
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  4140
make_dot_spec_mappings
14337
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  4141
    ^ self common_mappings
14339
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
  4142
        at: 'MODULE_DIRECTORY' put: ( self moduleDirectory );
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4143
        at: 'STCWARNINGOPTIONS' put: (self stcWarningOptions);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4144
        at: 'STCOPTIMIZATIONOPTIONS' put: (self stcOptimizationOptions);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4145
        at: 'CLASSES' put: [self generateClasses_make_dot_spec];
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4146
        at: 'OBJECTS' put: [self generateObjects_make_dot_spec];
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4147
        yourself
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  4148
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  4149
    "Created: / 18-08-2006 / 11:44:23 / cg"
14339
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
  4150
    "Modified: / 05-09-2012 / 10:11:02 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  4151
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  4152
12428
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4153
makefile_mappings
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4154
    ^ Dictionary new
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4155
        yourself
12428
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4156
!
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4157
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  4158
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
  4159
    |d s resourceCount|
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  4160
9630
526c4d537a8e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9627
diff changeset
  4161
    d := Dictionary new.
526c4d537a8e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9627
diff changeset
  4162
    d
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4163
        at: 'PRODUCT_NAME' put: (self productName);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4164
        at: 'PRODUCT_VERSION' put: (self productVersion);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4165
        at: 'PRODUCT_DATE' put: (self productDate);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4166
        at: 'FILETYPE' put: ( 'VFT_DLL' );
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4167
        at: 'FILE_VERSION_COMMASEPARATED' put: (self fileVersionCommaSeparated);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4168
        at: 'PRODUCT_VERSION_COMMASEPARATED' put: (self productVersionCommaSeparated);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4169
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4170
        at: 'COMPANY_NAME' put: (self companyName);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4171
        at: 'FILE_DESCRIPTION' put: (self fileDescription);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4172
        at: 'FILE_VERSION' put: (self fileVersion);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4173
        at: 'INTERNAL_NAME' put: (self internalName).
11377
35d261aa5493 splash file definition
Claus Gittinger <cg@exept.de>
parents: 11369
diff changeset
  4174
9630
526c4d537a8e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9627
diff changeset
  4175
    s := self legalCopyright.
526c4d537a8e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9627
diff changeset
  4176
    s notNil ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4177
        d at: 'LEGAL_COPYRIGHT_LINE' put: '      VALUE "LegalCopyright", "',s,'\0"'
9630
526c4d537a8e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9627
diff changeset
  4178
    ].
11611
fa06cde6bd11 Allow for additional icon files to be placed in resources
Stefan Vogel <sv@exept.de>
parents: 11580
diff changeset
  4179
    s := String streamContents:[:stream|
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4180
            |suff|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4181
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  4182
            s := self applicationIconFileNameWindows.
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4183
            s notNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4184
                s asFilename suffix isEmptyOrNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4185
                    suff := '.ico'
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4186
                ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4187
                    suff := ''
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4188
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4189
                'IDR_MAINFRAME           ICON    DISCARDABLE     "%1%2"'
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4190
                        expandPlaceholdersWith:(Array with:s with:suff) on:stream.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4191
                stream cr.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4192
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4193
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4194
            s := self splashFileName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4195
            s notNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4196
                s asFilename suffix isEmptyOrNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4197
                    suff := '.bmp'
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4198
                ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4199
                    suff := ''
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4200
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4201
                'IDR_SPLASH           BITMAP    DISCARDABLE     "%1%2"'
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4202
                        expandPlaceholdersWith:(Array with:s with:suff) on:stream.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4203
                stream cr.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4204
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4205
            resourceCount := 2.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4206
            self applicationAdditionalIconFileNames do:[:eachFilename|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4207
                'IDR_MAINFRAME+%1           ICON    DISCARDABLE     "%2"'
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4208
                        expandPlaceholdersWith:(Array with:resourceCount with:eachFilename) on:stream.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4209
                stream cr.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4210
                resourceCount := resourceCount+1.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4211
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4212
        ].
11611
fa06cde6bd11 Allow for additional icon files to be placed in resources
Stefan Vogel <sv@exept.de>
parents: 11580
diff changeset
  4213
    d at: #'ICONDEFINITION_LINE' put:s.
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  4214
9630
526c4d537a8e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9627
diff changeset
  4215
    ^ d
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  4216
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  4217
    "Created: / 09-08-2006 / 11:21:21 / fm"
13309
27f463f6c0cb changed: #packageName_dot_rc_mappings
Claus Gittinger <cg@exept.de>
parents: 13285
diff changeset
  4218
    "Modified: / 22-02-2011 / 11:30:36 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4219
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4220
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4221
package_dot_deps_dot_rake_mappings
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  4222
    |dependencies|
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  4223
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  4224
    dependencies := String
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  4225
            streamContents:[:s |
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  4226
                self allPreRequisites do:[:package |
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  4227
                    (self preRequisitesFor:package) do:[:prereq |
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  4228
                        s
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  4229
                            nextPutAll:('task "%1" => "%2"' bindWith:package with:prereq);
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  4230
                            cr
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  4231
                    ].
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  4232
                    s cr
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  4233
                ].
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  4234
                self effectivePreRequisites do:[:prereq |
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  4235
                    s
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  4236
                        nextPutAll:('task "%1" => "%2"' bindWith:self package with:prereq);
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  4237
                        cr
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  4238
                ].
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  4239
            ].
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4240
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4241
    ^ (Dictionary new)
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4242
        at:'DEPENDENCIES' put:dependencies;
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4243
        yourself
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4244
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4245
    "
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4246
        stx_libjava generate_package_dot_deps_dot_rake
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4247
    "
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4248
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4249
    "Created: / 24-02-2011 / 22:32:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4250
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4251
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  4252
replaceMappings: mappings in: fileTemplate
9733
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  4253
    "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
  4254
9733
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  4255
    ^ fileTemplate bindWithArguments:mappings.
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  4256
9733
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  4257
    "
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4258
     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
  4259
    "
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  4260
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  4261
    "Created: / 08-08-2006 / 11:44:27 / fm"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  4262
    "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
  4263
!
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  4264
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  4265
st2c:aString
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4266
        ^ (aString asString
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4267
            copyReplaceString:'_' withString:('_',($_ codePoint printStringRadix:8)))
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4268
                replaceAny:':' with:$_
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4269
! !
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4270
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4271
!ProjectDefinition class methodsFor:'file mappings support'!
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  4272
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4273
classNamesByCategory
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4274
    "answer a dictionary
13728
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  4275
        category -> classNames topological sorted"
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4276
15916
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  4277
    |classes classNames mapping alreadyWarned|
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4278
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4279
    mapping := Dictionary new.
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4280
15126
5b6a3c2f3c03 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15124
diff changeset
  4281
    classes := Class classesSortedByLoadOrder:self compiled_classes_common.
15124
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  4282
    classNames := classes collect:[:eachClass| eachClass name].
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  4283
    self namesAndAttributesIn:(self additionalClassNamesAndAttributes) do: [:nm :attr |
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  4284
        (attr isEmptyOrNil or:[(attr includes:#autoload) not]) ifTrue:[
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  4285
            classNames add:nm.
13728
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  4286
        ].
15124
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  4287
    ].
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  4288
    mapping at:'COMMON' put:classNames.
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  4289
15916
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  4290
    alreadyWarned := false.
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4291
    OperatingSystem knownPlatformNames do:[:platformID |
15124
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  4292
        |platformClasses platformClassNames|
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  4293
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  4294
        platformClasses := self compiled_classesForPlatform:platformID.
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  4295
        platformClasses notEmpty ifTrue:[
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  4296
            (platformClasses contains:[:each| each isNil or:[each isLoaded not]]) ifTrue:[
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  4297
                "win32 classes are not present in linux..."
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  4298
                Transcript show:'Missing classes for platform: '. Transcript showCR:platformID.
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  4299
                platformClassNames := self compiled_classNamesForPlatform:platformID.
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  4300
                platformClassNames
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  4301
                    select:[:nm | |cls| cls := Smalltalk classNamed:nm. cls isNil or:[cls isLoaded not]]
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  4302
                    thenDo:[:nm | Transcript tab; showCR:nm].
15916
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  4303
                UserPreferences current suppressProjectDefinitionWarnings ifFalse:[
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  4304
                    alreadyWarned ifFalse:[
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  4305
                        (Dialog confirm:('Dependencies (and therefore build-order) might be incorrect\(some classes for platform ''%1'' are not present or autoloaded; see Transcript).\\Continue anyway without recomputing the compilation order for this platform''s classes?' withCRs bindWith:platformID))
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  4306
                        ifFalse:[
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  4307
                            AbortOperationRequest raise.
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  4308
                        ].
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  4309
                    ].
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  4310
                    alreadyWarned := true
13728
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  4311
                ].
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  4312
            ] ifFalse:[
15126
5b6a3c2f3c03 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15124
diff changeset
  4313
                classes := Class classesSortedByLoadOrder:platformClasses.
15124
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  4314
                platformClassNames := platformClasses collect:[:eachClass| eachClass name].
13728
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  4315
            ].
15124
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  4316
            mapping at:platformID asUppercase put:platformClassNames.
13728
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  4317
        ].
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4318
    ].
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4319
    ^ mapping
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4320
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4321
    "
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4322
     stx_libbasic classNamesByCategory
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4323
     stx_libbasic3 classNamesByCategory
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4324
     stx_libview classNamesByCategory
15124
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  4325
     stx_libjava classNamesByCategory
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4326
    "
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4327
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4328
    "Created: / 09-08-2006 / 11:24:39 / fm"
15916
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  4329
    "Modified: / 28-01-2014 / 21:40:23 / cg"
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4330
!
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4331
10299
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  4332
commonSymbolsFlag
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  4333
    "only for libraries"
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  4334
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  4335
    ^ ''
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  4336
!
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  4337
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4338
filenameForClass:classNameOrClass
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4339
    "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
  4340
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4341
"/    "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
  4342
"/     See also: #generateRemoveShellScriptOn: and #generateRenamShellScriptOn:"
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4343
"/    classNameOrClass isBehavior ifTrue:[
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4344
"/        ^ classNameOrClass generateClassFilename.
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4345
"/    ] ifFalse:[
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4346
"/        |cls|
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4347
"/
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4348
"/        cls := Smalltalk classNamed:classNameOrClass.
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4349
"/        cls notNil ifTrue:[
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4350
"/            ^ cls generateClassFilename.
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4351
"/        ].
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4352
"/    ].
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4353
"/    "end special code"
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4354
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4355
    ^ Smalltalk fileNameForClass:classNameOrClass.
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4356
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4357
    "
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4358
        self filenameForClass:HTML::Encoder
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4359
        Smalltalk fileNameForClass:HTML::Encoder
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4360
    "
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4361
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4362
    "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
  4363
    "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
  4364
!
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4365
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4366
generateClassLines:classLineTemplate
12771
878fc210c8e7 add an extra entry to the libInit.cc code:
Claus Gittinger <cg@exept.de>
parents: 12749
diff changeset
  4367
    "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
  4368
878fc210c8e7 add an extra entry to the libInit.cc code:
Claus Gittinger <cg@exept.de>
parents: 12749
diff changeset
  4369
    ^ 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
  4370
!
878fc210c8e7 add an extra entry to the libInit.cc code:
Claus Gittinger <cg@exept.de>
parents: 12749
diff changeset
  4371
878fc210c8e7 add an extra entry to the libInit.cc code:
Claus Gittinger <cg@exept.de>
parents: 12749
diff changeset
  4372
generateClassLines:classLineTemplate forClasses:classNames
878fc210c8e7 add an extra entry to the libInit.cc code:
Claus Gittinger <cg@exept.de>
parents: 12749
diff changeset
  4373
    "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
  4374
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4375
    ^ self generateClassLines:classLineTemplate forClasses:classNames includeAdditionalClasses:true
12804
079b692e0776 added: #generateClassLines:forClasses:includeAdditionalClasses:
sr
parents: 12771
diff changeset
  4376
!
079b692e0776 added: #generateClassLines:forClasses:includeAdditionalClasses:
sr
parents: 12771
diff changeset
  4377
079b692e0776 added: #generateClassLines:forClasses:includeAdditionalClasses:
sr
parents: 12771
diff changeset
  4378
generateClassLines:classLineTemplate forClasses:classNames includeAdditionalClasses:includeAdditionalClasses
079b692e0776 added: #generateClassLines:forClasses:includeAdditionalClasses:
sr
parents: 12771
diff changeset
  4379
    "for the init-file: generate class-init-lines for a collection of classes"
079b692e0776 added: #generateClassLines:forClasses:includeAdditionalClasses:
sr
parents: 12771
diff changeset
  4380
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4381
    ^ String
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4382
        streamContents:[:s |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4383
            |classesLoaded classNamesUnloaded classNamesSorted putLineForClassName|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4384
19309
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  4385
            putLineForClassName := 
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  4386
                [:className |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4387
                    |newClassLine mappings|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4388
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4389
                    mappings := self classLine_mappings:className.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4390
                    newClassLine := self replaceMappings:mappings in:classLineTemplate.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4391
                    s nextPutLine:newClassLine
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4392
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4393
            classesLoaded := classNames collect:[:eachClassName | Smalltalk classNamed:eachClassName]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4394
                                        thenSelect:[:eachClass | eachClass notNil and:[eachClass isLoaded]].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4395
            classNamesUnloaded := classNames
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4396
                        select:[:nm |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4397
                            |cls|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4398
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4399
                            cls := Smalltalk classNamed:nm.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4400
                            cls isNil or:[ cls isLoaded not ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4401
                        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4402
            classNamesSorted := (Class classesSortedByLoadOrder:classesLoaded) collect:[:cls | cls name].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4403
            classNamesSorted do:putLineForClassName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4404
            classNamesUnloaded do:putLineForClassName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4405
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4406
            includeAdditionalClasses ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4407
                self namesAndAttributesIn:(self additionalClassNamesAndAttributes)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4408
                    do:[:nm :attr |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4409
                        (attr isEmptyOrNil or:[ (attr includes:#autoload) not ]) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4410
                            putLineForClassName value:nm.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4411
                        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4412
                    ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4413
                #( ('UNIX' unix)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4414
                   ('WIN32' win32)
17638
a2feeffaea64 osx stuff
Claus Gittinger <cg@exept.de>
parents: 17587
diff changeset
  4415
                   ('OSX' osx)
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4416
                   ('VMS' vms)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4417
                   ('BEOS' beos) )
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4418
                        pairsDo:[:ifdef :platformName |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4419
                            |archClassNames archClassesLoaded|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4420
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4421
                            archClassNames := self compiled_classNamesForPlatform:platformName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4422
                            archClassNames notEmpty ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4423
                                s nextPutLine:'#ifdef ' , ifdef.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4424
                                archClassNames do:[:clsName |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4425
                                    putLineForClassName value:clsName
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4426
                                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4427
                                s nextPutLine:'#endif /* ' , ifdef , ' */'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4428
                            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4429
                        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4430
            ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4431
        ]
9962
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  4432
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  4433
    "
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  4434
     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
  4435
     bosch_dapasx_kernel  generateClassLines_libInit_dot_cc
10010
69b2dbff964b *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10007
diff changeset
  4436
     stx_libbasic3 generateClassLines_libInit_dot_cc
69b2dbff964b *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10007
diff changeset
  4437
    "
69b2dbff964b *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10007
diff changeset
  4438
9962
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  4439
    "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
  4440
    "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
  4441
    "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
  4442
!
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  4443
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  4444
generateClassLines_libInit_dot_cc
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  4445
    ^ 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
  4446
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  4447
    "
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  4448
     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
  4449
     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
  4450
     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
  4451
    "
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  4452
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  4453
    "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
  4454
    "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
  4455
    "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
  4456
!
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  4457
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4458
generateClasses_make_dot_spec
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4459
    |classNamesDict|
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4460
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4461
    classNamesDict := self classNamesByCategory.
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4462
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4463
    ^ String streamContents:[:s |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4464
        classNamesDict keysAndValuesDo:[:eachCategory :classNames|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4465
            s nextPutLine:eachCategory,'_CLASSES= \'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4466
            classNames do:[:eachClassName|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4467
                s tab; nextPutAll:eachClassName; nextPutLine:' \'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4468
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4469
            s cr.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4470
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4471
        s cr.
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4472
    ].
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4473
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4474
    "
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4475
     stx_libbasic generateClasses_make_dot_spec
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4476
     stx_libbasic3 generateClasses_make_dot_spec
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4477
     stx_libview generateClasses_make_dot_spec
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4478
     stx_libboss generateClasses_make_dot_spec
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4479
    "
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4480
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4481
    "Created: / 09-08-2006 / 11:24:39 / fm"
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4482
    "Modified: / 20-10-2006 / 16:18:54 / cg"
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4483
!
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4484
19309
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  4485
generateDefinitionClassLine_libInit_dot_cc
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  4486
    "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
  4487
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  4488
    ^ self
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  4489
        generateClassLines:(self classLine_libInit_dot_cc)
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  4490
        forClasses:(Array with:self name)
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  4491
        includeAdditionalClasses:false
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  4492
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  4493
    "
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  4494
     stx_libbasic generateDefinitionClassLine_libInit_dot_cc
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  4495
    "
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  4496
!
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  4497
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4498
generateDependencies:whichArchitecture
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4499
    ^ String
13763
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4500
        streamContents:[:s |
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4501
            |classNames classesPresent classesLoaded clsBaseName putDependencyForClassBlock
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4502
             putDependencyForClassBaseNameBlock
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4503
             archClassNames archClassesPresent archClassesLoaded
16163
dfa1f3b17a6e class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16160
diff changeset
  4504
             putSingleClassDependencyEntryBlock putDependencyForExtensionsBlock classSortBlock|
dfa1f3b17a6e class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16160
diff changeset
  4505
dfa1f3b17a6e class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16160
diff changeset
  4506
            classSortBlock := [ :a :b|
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  4507
                a package == b package ifTrue:[
16163
dfa1f3b17a6e class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16160
diff changeset
  4508
                    a name < b name
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  4509
                ] ifFalse:[
16163
dfa1f3b17a6e class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16160
diff changeset
  4510
                    a package < b package
dfa1f3b17a6e class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16160
diff changeset
  4511
                ].
dfa1f3b17a6e class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16160
diff changeset
  4512
            ].
13763
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4513
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4514
            putSingleClassDependencyEntryBlock := [:cls |
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4515
                    |sclsBaseName|
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4516
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4517
                    s nextPutAll:' $(INCLUDE_TOP)'.
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
  4518
                    s nextPutAll:(self pathSeparator:whichArchitecture).
13763
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4519
                    sclsBaseName := self filenameForClass:cls.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4520
                    s nextPutAll:(self
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4521
                                topRelativePathTo:sclsBaseName
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4522
                                inPackage:cls package
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4523
                                architecture:whichArchitecture).
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4524
                    s nextPutAll:'.$(H)'.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4525
                ].
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4526
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4527
            putDependencyForClassBaseNameBlock := [:clsBaseName |
19557
9985e5091848 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19481
diff changeset
  4528
                    s nextPutAll:('$(OUTDIR)',clsBaseName,'.$(O)').
9985e5091848 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19481
diff changeset
  4529
                    s nextPutAll:' '.
9985e5091848 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19481
diff changeset
  4530
                    s nextPutAll:(clsBaseName,'.$(C)').
13763
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4531
                    s nextPutAll:' '.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4532
                    s nextPutAll:clsBaseName.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4533
                    s nextPutAll:'.$(H)'.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4534
                    s nextPutAll:': '.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4535
                    s nextPutAll:clsBaseName.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4536
                    s nextPutAll:'.st'.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4537
                ].
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4538
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4539
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4540
            putDependencyForClassBlock := [:cls |
16163
dfa1f3b17a6e class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16160
diff changeset
  4541
                    |clsBaseName classes|
13763
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4542
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4543
                    clsBaseName := self filenameForClass:cls.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4544
                    putDependencyForClassBaseNameBlock value:clsBaseName.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4545
                    cls isLoaded ifTrue:[
16163
dfa1f3b17a6e class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16160
diff changeset
  4546
                        classes := IdentitySet new.
13763
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4547
                        cls
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4548
                            sharedPools do:[:poolClass |
13798
894c48237cd5 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13797
diff changeset
  4549
                                poolClass isNil ifTrue:[
894c48237cd5 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13797
diff changeset
  4550
                                    Dialog warn:'At least one pool class is missing.\\Dependencies are incomplete.' withCRs
894c48237cd5 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13797
diff changeset
  4551
                                ] ifFalse:[
16163
dfa1f3b17a6e class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16160
diff changeset
  4552
                                    classes add:poolClass.
13798
894c48237cd5 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13797
diff changeset
  4553
                                ]
13763
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4554
                            ].
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4555
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4556
                        cls
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4557
                            allSuperclassesDo:[:scls |
16163
dfa1f3b17a6e class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16160
diff changeset
  4558
                                classes add:scls.
13763
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4559
                            ].
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4560
                        cls
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4561
                            allPrivateClassesDo:[:eachPrivateClass |
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4562
                                eachPrivateClass
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4563
                                    allSuperclassesDo:[:scls |
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4564
                                        |sclsBaseName|
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4565
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4566
                                        scls ~~ cls ifTrue:[
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4567
                                            scls isPrivate ifFalse:[
16163
dfa1f3b17a6e class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16160
diff changeset
  4568
                                                (classes includes:scls) ifFalse:[
dfa1f3b17a6e class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16160
diff changeset
  4569
                                                    classes add:scls.
13763
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4570
                                                ].
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4571
                                            ].
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4572
                                        ].
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4573
                                    ]
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4574
                            ].
16163
dfa1f3b17a6e class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16160
diff changeset
  4575
                        "/ Sort them to get stable order to avoid false conflicts
dfa1f3b17a6e class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16160
diff changeset
  4576
                        classes := classes asSortedCollection:classSortBlock.
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  4577
                        classes do:[:each | putSingleClassDependencyEntryBlock value:each].
13763
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4578
                    ].
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4579
                    s nextPutLine:' $(STCHDR)'.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4580
                ].
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4581
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4582
            putDependencyForExtensionsBlock := [
16163
dfa1f3b17a6e class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16160
diff changeset
  4583
                    | classes |
13763
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4584
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4585
                    s nextPutAll:'$(OUTDIR)extensions.$(O): extensions.st'.
16163
dfa1f3b17a6e class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16160
diff changeset
  4586
                    classes := Set new.
13763
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4587
                    self extensionMethodNames pairWiseDo:[:className :selector |
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4588
                            |mthdCls cls|
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4589
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4590
                            ((mthdCls := Smalltalk classNamed:className) notNil
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4591
                              and:[ mthdCls isLoaded ])
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4592
                                    ifTrue:[
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4593
                                        cls := mthdCls theNonMetaclass.
16163
dfa1f3b17a6e class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16160
diff changeset
  4594
                                        (classes includes:cls) ifFalse:[
13763
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4595
                                            cls
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4596
                                                withAllSuperclassesDo:[:scls |
16163
dfa1f3b17a6e class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16160
diff changeset
  4597
                                                    (classes includes:scls) ifFalse:[
dfa1f3b17a6e class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16160
diff changeset
  4598
                                                        classes add:scls.
13763
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4599
                                                    ].
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4600
                                                ].
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4601
                                        ].
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4602
                                    ].
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4603
                        ].
16163
dfa1f3b17a6e class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16160
diff changeset
  4604
                    "/ Sort them to get stable order to avoid false conflicts
dfa1f3b17a6e class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16160
diff changeset
  4605
                    classes := classes asSortedCollection:classSortBlock.
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  4606
                    classes do:[:each | putSingleClassDependencyEntryBlock value:each].
13763
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4607
                    s nextPutLine:' $(STCHDR)'.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4608
                ].
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4609
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4610
            classNames := self compiled_classNames_common.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4611
            classesPresent := classNames
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4612
                collect:[:className | Smalltalk classNamed:className]
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4613
                thenSelect:[:cls | cls notNil].
15367
62084d5299ff class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15366
diff changeset
  4614
            classesLoaded := classesPresent select:[:cls | cls isLoaded].
62084d5299ff class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15366
diff changeset
  4615
62084d5299ff class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15366
diff changeset
  4616
            (Class classesSortedByLoadOrder:classesLoaded) do:putDependencyForClassBlock.
15376
e7851cc7f340 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15372
diff changeset
  4617
            classesPresent reject:[:cls | cls isLoaded] thenDo:putDependencyForClassBlock.
13763
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4618
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4619
            self namesAndAttributesIn:(self additionalClassNamesAndAttributes)
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4620
                do:[:className :attr |
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4621
                    |cls|
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4622
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4623
                    (attr isEmptyOrNil or:[ (attr includes:#autoload) not ]) ifTrue:[
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4624
                        ((cls := Smalltalk classNamed:className) notNil) ifTrue:[
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4625
                            putDependencyForClassBlock value:cls.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4626
                        ]
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4627
                    ].
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4628
                ].
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4629
            archClassNames := self compiled_classNamesForPlatform:whichArchitecture.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4630
            archClassesPresent := archClassNames
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4631
                collect:[:className | Smalltalk classNamed:className]
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4632
                thenSelect:[:cls | cls notNil].
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4633
15367
62084d5299ff class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15366
diff changeset
  4634
            archClassesLoaded := archClassesPresent select:[:cls | cls isLoaded].
13763
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4635
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4636
            (Class classesSortedByLoadOrder:archClassesLoaded)
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4637
                do:putDependencyForClassBlock.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4638
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4639
            "some classes are not loaded - probably this is the wrong architecture.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4640
             Sorry, but for these classes, we do not know the superclass chain"
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4641
            archClassesPresent
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4642
                select:[:cls | cls isLoaded not]
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4643
                thenDo:putDependencyForClassBlock.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4644
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4645
            "for the following classes, we do not know the superclass chain
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4646
             and neither the real class file name"
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4647
            archClassNames
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4648
                select:[:eachClassName | (Smalltalk classNamed:eachClassName) isNil]
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4649
                thenDo:[:eachClassName |
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4650
                    putDependencyForClassBaseNameBlock value:(self filenameForClass:eachClassName).
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4651
                    s nextPutLine:' $(STCHDR)'.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4652
                ].
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4653
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4654
            self hasExtensionMethods ifTrue:putDependencyForExtensionsBlock.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4655
        ]
9887
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4656
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4657
    "
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4658
     stx_libbasic3 generateDependencies:#unix
10010
69b2dbff964b *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10007
diff changeset
  4659
     stx_libbasic3 generateDependencies:#win32
69b2dbff964b *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10007
diff changeset
  4660
    "
69b2dbff964b *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10007
diff changeset
  4661
9887
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4662
    "Created: / 14-09-2006 / 12:38:57 / cg"
13798
894c48237cd5 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13797
diff changeset
  4663
    "Modified: / 27-10-2011 / 16:35:59 / cg"
16163
dfa1f3b17a6e class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16160
diff changeset
  4664
    "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
  4665
!
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4666
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4667
generateDependencies_unix
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4668
    ^ self generateDependencies:#unix
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4669
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4670
    "
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4671
     stx_libbasic3 generateDependencies:#unix
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4672
     stx_libbasic3 generateDependencies:#win32
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4673
    "
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4674
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4675
    "Modified: / 14-09-2006 / 13:32:34 / cg"
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4676
!
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4677
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4678
generateDependencies_win32
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4679
    ^ self generateDependencies:#win32
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4680
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4681
    "Created: / 14-09-2006 / 12:39:18 / cg"
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4682
!
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4683
19309
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  4684
generateExternalDeclarationLines_libInit_dot_cc
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  4685
    "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
  4686
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  4687
    ^ self
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  4688
        generateClassLines:(self classExternalDeclarationLine_libInit_dot_cc)
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  4689
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  4690
    "
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  4691
     stx_libbasic generateExternalDeclarationLines_libInit_dot_cc
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  4692
    "
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  4693
!
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  4694
9956
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  4695
generateLocalIncludes_unix
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  4696
    ^ String streamContents:[:s |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4697
        s nextPutAll:(self localIncludes_unix).
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  4698
        self searchForProjectsWhichProvideHeaderFiles asSortedCollection
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4699
            do:[:includeProject |
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
  4700
                s nextPutAll:' -I$(INCLUDE_TOP)/',(self topRelativePathToPackage:includeProject withSeparator:'/')
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4701
            ]
9956
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  4702
    ]
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  4703
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  4704
    "
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  4705
     bosch_dapasx generateLocalIncludes_unix
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4706
     bosch_dapasx_datenbasis generateLocalIncludes_unix
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4707
     stx_libbasic generateLocalIncludes_unix
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4708
     stx_libview generateLocalIncludes_unix
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4709
     stx_libtool2 generateLocalIncludes_unix
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4710
     stx_libui generateLocalIncludes_unix
14939
9e38d1deb712 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14930
diff changeset
  4711
     cg_demos_helloWorld localIncludes_unix
9956
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  4712
    "
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  4713
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  4714
    "Created: / 09-08-2006 / 16:46:49 / fm"
10251
653b5d0a7713 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
  4715
    "Modified: / 07-12-2006 / 17:47:06 / cg"
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  4716
    "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
  4717
!
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  4718
9887
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4719
generateLocalIncludes_win32
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4720
    ^ String streamContents:[:s |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4721
        s nextPutAll:(self localIncludes_win32).
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  4722
        self searchForProjectsWhichProvideHeaderFiles asSortedCollection
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4723
            do:[:includeProject |
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
  4724
                s nextPutAll:' -I$(INCLUDE_TOP)\',(self topRelativePathToPackage:includeProject withSeparator:'\')
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4725
            ]
9887
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4726
    ]
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4727
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4728
    "
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4729
     bosch_dapasx_application generateLocalIncludes_win32
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4730
     bosch_dapasx_datenbasis generateLocalIncludes_win32
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4731
     stx_libbasic generateLocalIncludes_win32
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4732
     stx_libview generateLocalIncludes_win32
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4733
     stx_libtool2 generateLocalIncludes_win32
9887
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4734
    "
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4735
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4736
    "Created: / 09-08-2006 / 16:46:49 / fm"
10251
653b5d0a7713 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
  4737
    "Modified: / 07-12-2006 / 17:47:10 / cg"
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  4738
    "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
  4739
!
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4740
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4741
generateObjects_make_dot_spec
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4742
    |classNamesDict|
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4743
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4744
    classNamesDict := self classNamesByCategory.
9883
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  4745
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  4746
    ^ String streamContents:[:s |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4747
        |putLineForClassName|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4748
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4749
        putLineForClassName :=
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4750
            [:eachClassName |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4751
                |mappings newObjectLine|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4752
                mappings := self objectLine_make_dot_spec_mappings: eachClassName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4753
                newObjectLine := self replaceMappings: mappings in: self objectLine_make_dot_spec.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4754
                s nextPutLine:newObjectLine.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4755
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4756
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4757
        classNamesDict keysAndValuesDo:[:eachCategory :classNames|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4758
            s nextPutLine:eachCategory,'_OBJS= \'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4759
            classNames do:putLineForClassName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4760
            (eachCategory = 'COMMON' and:[self hasExtensionMethods]) ifTrue:[
21236
df609ea04274 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 21102
diff changeset
  4761
                s nextPutLine:'    $(OUTDIR)extensions.$(O) \'.
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4762
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4763
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4764
            s cr.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4765
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4766
        s cr.
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4767
    ].
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  4768
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  4769
    "
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4770
     stx_libbasic generateObjects_make_dot_spec
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  4771
     stx_libbasic3 generateObjects_make_dot_spec
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4772
     stx_libview generateObjects_make_dot_spec
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4773
     stx_libboss generateObjects_make_dot_spec
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  4774
    "
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  4775
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  4776
    "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
  4777
    "Modified: / 20-10-2006 / 16:18:54 / cg"
9887
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4778
!
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4779
11157
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4780
generateRequiredMakePrerequisites_bc_dot_mak
11380
ac50ce4321b5 Fix prerequisite makes (pushd)
Stefan Vogel <sv@exept.de>
parents: 11377
diff changeset
  4781
    |myProjectId|
11157
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4782
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4783
    ^ String streamContents:[:s |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4784
        myProjectId := self package.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4785
        "Note: the trailing blank in 'CFLAGS_LOCAL=$(GLOBALDEFINES) '
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4786
         is required!!
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4787
         Use 'pushd' instead of 'cd', since cd is executed by borland make directly.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4788
         'popd' is not needed, since each line is executed in
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4789
                an own cmd.exe process.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4790
         'popd' is not desireable, since it masks a possible
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4791
                error return from the 'bmake'.
14547
985d895bdb58 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14521
diff changeset
  4792
        "
985d895bdb58 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14521
diff changeset
  4793
985d895bdb58 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14521
diff changeset
  4794
        "cg: changed to not go and remake librun"
15082
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  4795
        (self allPreRequisitesSorted:#effectiveMandatoryPreRequisites "#effectivePreRequisites") do:[:eachProjectId |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4796
            s tab; nextPutAll:'pushd ';
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4797
                   nextPutAll:(self msdosPathToPackage:eachProjectId from:myProjectId);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4798
                   nextPutLine:' & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4799
        ].
11157
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4800
    ].
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4801
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4802
    "
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4803
     exept_expecco_application generateRequiredMakePrerequisites_bc_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4804
     alspa_batch_application generateRequiredMakePrerequisites_bc_dot_mak
11157
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4805
    "
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4806
!
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4807
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4808
generateRequiredMakePrerequisites_make_dot_proto
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4809
    |libPath|
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4810
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4811
    ^ String streamContents:[:s |
14547
985d895bdb58 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14521
diff changeset
  4812
        "cg: changed to not go and remake librun"
15082
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  4813
        (self allPreRequisitesSorted:#effectiveMandatoryPreRequisites "#effectivePreRequisites") do:[:projectID |
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
  4814
            libPath := self pathToPackage:projectID withSeparator:'/'.
19290
59f1b3c69457 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 19203
diff changeset
  4815
            s tab; nextPutAll: 'cd ', libPath; nextPutLine:' && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES) "'.
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4816
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4817
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4818
        s cr.
11157
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4819
    ].
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4820
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4821
    "
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4822
     exept_expecco_application generateRequiredMakePrerequisites_make_dot_proto
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4823
     alspa_batch_application generateRequiredMakePrerequisites_make_dot_proto
11157
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4824
    "
19290
59f1b3c69457 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 19203
diff changeset
  4825
59f1b3c69457 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 19203
diff changeset
  4826
    "Modified: / 03-03-2016 / 21:23:31 / cg"
11157
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4827
!
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4828
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4829
generateRequiredMakeReferences_bc_dot_mak
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4830
    |myProjectId preRequisites|
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4831
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4832
    myProjectId := self package.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4833
    "Note: the trailing blank in 'CFLAGS_LOCAL=$(GLOBALDEFINES) '
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4834
     is required!!
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4835
     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
  4836
     'popd' is not needed, since each line is executed in
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4837
            an own cmd.exe process.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4838
     'popd' is not desierable, since it masks a possible
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4839
            error return from the 'bmake'.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4840
    "
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4841
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4842
    preRequisites := self allPreRequisitesSorted:#effectivePreRequisites.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4843
    "these have been already built in preReq"
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4844
    preRequisites removeAllFoundIn:(self allPreRequisites:#mandatoryPreRequisites).
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4845
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4846
    ^ String streamContents:[:s |
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4847
        preRequisites do:[:eachProjectId |
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4848
            s tab; nextPutAll:'pushd ';
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4849
                   nextPutAll:(self msdosPathToPackage:eachProjectId from:myProjectId);
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4850
                   nextPutLine:' & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "'.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4851
        ].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4852
    ].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4853
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4854
    "
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4855
     exept_expecco_application generateRequiredMakeReferences_bc_dot_mak
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4856
     alspa_batch_application generateRequiredMakeReferences_bc_dot_mak
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4857
    "
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4858
!
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4859
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4860
generateRequiredMakeReferences_make_dot_proto
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4861
    |libPath preRequisites|
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4862
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4863
    preRequisites := self allPreRequisitesSorted:#effectivePreRequisites.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4864
    "these have been already built in preReq"
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4865
    preRequisites removeAllFoundIn:(self allPreRequisites:#mandatoryPreRequisites).
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4866
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4867
    ^ String streamContents:[:s |
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4868
        preRequisites do:[:projectID |
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
  4869
            libPath := self pathToPackage:projectID withSeparator:'/'.
19290
59f1b3c69457 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 19203
diff changeset
  4870
            s tab; nextPutAll: 'cd ', libPath; nextPutLine:' && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES) "'.
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4871
        ].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4872
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4873
        s cr.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4874
    ].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4875
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4876
    "
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4877
     exept_expecco_application generateRequiredMakeReferences_make_dot_proto
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4878
     alspa_batch_application generateRequiredMakeReferences_make_dot_proto
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4879
    "
19290
59f1b3c69457 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 19203
diff changeset
  4880
59f1b3c69457 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 19203
diff changeset
  4881
    "Modified: / 03-03-2016 / 21:23:45 / cg"
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4882
!
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4883
10022
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4884
generateSubDirectories
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4885
    ^ String streamContents:[:s |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4886
        self subProjects
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4887
            do:[:eachProjectID |
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
  4888
                s space; nextPutAll:(self pathToPackage:eachProjectID from:self package withSeparator:'/')
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4889
            ]
10022
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4890
    ]
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4891
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4892
    "
10380
ff1cfee6130b Fix subproject incluseion in Make.proto
Stefan Vogel <sv@exept.de>
parents: 10369
diff changeset
  4893
     exept_expecco generateSubDirectories
10022
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4894
    "
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4895
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4896
    "Created: / 09-08-2006 / 11:26:59 / fm"
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4897
    "Modified: / 14-09-2006 / 18:46:18 / cg"
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4898
!
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4899
12771
878fc210c8e7 add an extra entry to the libInit.cc code:
Claus Gittinger <cg@exept.de>
parents: 12749
diff changeset
  4900
generate_definitionClassLine_libInit_dot_cc
878fc210c8e7 add an extra entry to the libInit.cc code:
Claus Gittinger <cg@exept.de>
parents: 12749
diff changeset
  4901
    "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
  4902
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4903
    ^ self
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4904
        generateClassLines:(self classLine_libInit_dot_cc)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4905
        forClasses:(Array with:self name)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4906
        includeAdditionalClasses:false
12804
079b692e0776 added: #generateClassLines:forClasses:includeAdditionalClasses:
sr
parents: 12771
diff changeset
  4907
079b692e0776 added: #generateClassLines:forClasses:includeAdditionalClasses:
sr
parents: 12771
diff changeset
  4908
    "
079b692e0776 added: #generateClassLines:forClasses:includeAdditionalClasses:
sr
parents: 12771
diff changeset
  4909
     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
  4910
    "
878fc210c8e7 add an extra entry to the libInit.cc code:
Claus Gittinger <cg@exept.de>
parents: 12749
diff changeset
  4911
!
878fc210c8e7 add an extra entry to the libInit.cc code:
Claus Gittinger <cg@exept.de>
parents: 12749
diff changeset
  4912
10022
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4913
headerFileOutputArg
20590
60c281959efc #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20586
diff changeset
  4914
    "Every header file is left locally in its lib-dir"
60c281959efc #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20586
diff changeset
  4915
13875
2e01d09fa4c4 -headerDir= instead of --headerDir=
Claus Gittinger <cg@exept.de>
parents: 13873
diff changeset
  4916
    ^ '-headerDir=.'
10022
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4917
!
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4918
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4919
objectLine_make_dot_spec_mappings: aClassName
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4920
    ^ Dictionary new
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4921
        at: 'CLASSFILE' put:(self filenameForClass:aClassName);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4922
        yourself
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4923
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4924
    "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
  4925
    "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
  4926
    "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
  4927
!
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4928
9887
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4929
subProjectBmakeCalls
12439
c0cf51f2bf67 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12438
diff changeset
  4930
    "generate submake-calls for borland bcc"
c0cf51f2bf67 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12438
diff changeset
  4931
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4932
    ^ self subProjectMakeCallsUsing:'call bmake %1 %2'.
12438
26bbeae51816 added: #subProjectMakeCallsUsing:
Claus Gittinger <cg@exept.de>
parents: 12428
diff changeset
  4933
!
26bbeae51816 added: #subProjectMakeCallsUsing:
Claus Gittinger <cg@exept.de>
parents: 12428
diff changeset
  4934
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4935
subProjectLCCmakeCalls
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4936
    "generate submake-calls for lcc"
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4937
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4938
    ^ self subProjectMakeCallsUsing:'call lccmake %1 %2'.
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4939
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4940
    "Created: / 03-09-2012 / 19:49:08 / cg"
12438
26bbeae51816 added: #subProjectMakeCallsUsing:
Claus Gittinger <cg@exept.de>
parents: 12428
diff changeset
  4941
!
26bbeae51816 added: #subProjectMakeCallsUsing:
Claus Gittinger <cg@exept.de>
parents: 12428
diff changeset
  4942
26bbeae51816 added: #subProjectMakeCallsUsing:
Claus Gittinger <cg@exept.de>
parents: 12428
diff changeset
  4943
subProjectMakeCallsUsing:callString
20703
d7634ffa200f #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 20673
diff changeset
  4944
    "for xxxmake.bat files"
d7634ffa200f #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 20673
diff changeset
  4945
    
9887
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4946
    ^ String streamContents:[:s |
21259
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  4947
        (self effectiveSubProjects:#win32) do:[:packageID |
19977
ea5cb1c18dd7 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 19955
diff changeset
  4948
            |pkgLabel skipLabel joinLabel|
ea5cb1c18dd7 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 19955
diff changeset
  4949
            
ea5cb1c18dd7 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 19955
diff changeset
  4950
            pkgLabel := (packageID copyReplaceAll:$: with:$_) copyReplaceAll:$/ with:$_.
ea5cb1c18dd7 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 19955
diff changeset
  4951
            skipLabel := 'skip_',pkgLabel.
ea5cb1c18dd7 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 19955
diff changeset
  4952
            joinLabel := 'done_',pkgLabel.
ea5cb1c18dd7 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 19955
diff changeset
  4953
            s nextPutLine:'@if not exist ',(self msdosPathToPackage:packageID from:(self package)),' goto ',skipLabel.
13734
e4a151f35857 changed: #bc_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13728
diff changeset
  4954
            s nextPutLine:'@echo "***********************************"'.
20703
d7634ffa200f #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 20673
diff changeset
  4955
            s nextPutLine:'@echo "Building ',(packageID copyReplaceAll:$: with:$/),'"'.
13734
e4a151f35857 changed: #bc_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13728
diff changeset
  4956
            s nextPutLine:'@echo "***********************************"'.
17229
e8ed2a58e37e class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 17228
diff changeset
  4957
            s nextPutLine:'@pushd ', (self msdosPathToPackage:packageID from:(self package)).
e8ed2a58e37e class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 17228
diff changeset
  4958
            s nextPutAll:'@'; nextPutAll:callString; nextPutLine:' || exit /b "%errorlevel%"'.
e8ed2a58e37e class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 17228
diff changeset
  4959
            s nextPutLine:'@popd'.
19977
ea5cb1c18dd7 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 19955
diff changeset
  4960
            s nextPutLine:'@goto ',joinLabel.
ea5cb1c18dd7 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 19955
diff changeset
  4961
            s nextPutLine:':',skipLabel.
ea5cb1c18dd7 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 19955
diff changeset
  4962
            s nextPutLine:'@echo "###################################"'.
20703
d7634ffa200f #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 20673
diff changeset
  4963
            s nextPutLine:'@echo "FOLDER MISSING: ',(packageID copyReplaceAll:$: with:$/),'"'.
19977
ea5cb1c18dd7 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 19955
diff changeset
  4964
            s nextPutLine:'@echo "###################################"'.
ea5cb1c18dd7 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 19955
diff changeset
  4965
            s nextPutLine:'exit /b 1'.
ea5cb1c18dd7 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 19955
diff changeset
  4966
            s nextPutLine:':',joinLabel.
13734
e4a151f35857 changed: #bc_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13728
diff changeset
  4967
            s cr.
e4a151f35857 changed: #bc_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13728
diff changeset
  4968
        ]
9887
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4969
    ]
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4970
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4971
    "Created: / 14-09-2006 / 18:40:09 / cg"
13734
e4a151f35857 changed: #bc_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13728
diff changeset
  4972
    "Modified: / 27-09-2011 / 19:36:12 / cg"
21259
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  4973
    "Modified: / 17-01-2017 / 16:32:45 / stefan"
11937
622f2641439d vcmake.bat generation
Claus Gittinger <cg@exept.de>
parents: 11869
diff changeset
  4974
!
622f2641439d vcmake.bat generation
Claus Gittinger <cg@exept.de>
parents: 11869
diff changeset
  4975
14345
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4976
subProjectMingwmakeCalls
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4977
    "generate submake-calls for mingw"
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4978
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4979
    ^ self subProjectMakeCallsUsing:'call mingwmake %1 %2'.
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4980
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4981
    "Created: / 05-09-2012 / 19:45:53 / cg"
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4982
!
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4983
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4984
subProjectTCCmakeCalls
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4985
    "generate submake-calls for tcc"
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4986
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4987
    ^ self subProjectMakeCallsUsing:'call tccmake %1 %2'.
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4988
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4989
    "Created: / 03-09-2012 / 19:50:53 / cg"
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4990
!
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4991
11937
622f2641439d vcmake.bat generation
Claus Gittinger <cg@exept.de>
parents: 11869
diff changeset
  4992
subProjectVCmakeCalls
12439
c0cf51f2bf67 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12438
diff changeset
  4993
    "generate submake-calls for visual-C"
c0cf51f2bf67 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12438
diff changeset
  4994
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4995
    ^ self subProjectMakeCallsUsing:'call vcmake %1 %2'.
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  4996
! !
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  4997
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4998
!ProjectDefinition class methodsFor:'file templates'!
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4999
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5000
autopackage_default_dot_apspec
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5001
    "for linux's autopackage"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5002
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5003
^
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5004
'# -*- shell-script -*-
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5005
[Meta]
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5006
ShortName: %(APPLICATION)
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5007
SoftwareVersion: %(PRODUCT_VERSION)
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5008
DisplayName: %(DESCRIPTION)
20550
66bb5e013497 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20546
diff changeset
  5009
RootName: %(PRODUCT_ROOT_NAME)
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5010
Summary: %(DESCRIPTION)
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5011
Maintainer: %(MAINTAINER)
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5012
Packager: %(PACKAGER)
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5013
PackageVersion: 1
20550
66bb5e013497 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20546
diff changeset
  5014
CPUArchitectures: %(PRODUCT_CPU_VERSIONS)
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5015
AutopackageTarget: 1.0
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5016
Type: %(PRODUCT_TYPE)
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5017
License: %(PRODUCT_LICENSE)
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5018
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5019
[Description]
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5020
%(PRODUCT_DESCRIPTION)
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5021
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5022
[BuildPrepare]
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5023
# If you''re using autotools, the default should be enough.
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5024
# 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
  5025
# need to pass arguments to configure, just add them to prepareBuild:
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5026
# prepareBuild --enable-foo --disable-bar
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5027
#prepareBuild
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5028
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5029
[BuildUnprepare]
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5030
# 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
  5031
#unprepareBuild
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5032
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5033
[Globals]
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5034
# 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
  5035
export APKG_BUILD_SKIP_CONFIGURE=1
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5036
export APKG_BUILD_SKIP_MAKE=1
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5037
export MYPREFIX=/opt/%(APPLICATION)
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5038
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5039
[Prepare]
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5040
#recommend ''@autopackage.org/autopackage-gtk'' 1
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5041
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5042
[Imports]
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5043
import <<EOF
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5044
$source_dir/%(APPLICATION)
20550
66bb5e013497 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20546
diff changeset
  5045
%(ADDITIONAL_SOURCE_DIRS)
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5046
EOF
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5047
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5048
for i in $source_dir/*.so
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5049
do
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5050
    echo $source_dir/$(readlink $i)
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5051
done | import
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5052
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5053
[Install]
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5054
if [ "$PREFIX" !!= "/usr" ]
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5055
then
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5056
    export MYPREFIX=$PREFIX
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5057
fi
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5058
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5059
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
  5060
mkdir -p $MYPREFIX
20550
66bb5e013497 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20546
diff changeset
  5061
copyFiles %(PRODUCT_NAME) *.rc resources        $MYPREFIX/bin
66bb5e013497 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20546
diff changeset
  5062
%(ADDITIONAL_COPYFILES)
66bb5e013497 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20546
diff changeset
  5063
66bb5e013497 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20546
diff changeset
  5064
#installExe %(PRODUCT_NAME)
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5065
#installLib *.so
20550
66bb5e013497 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20546
diff changeset
  5066
%(ADDITIONAL_INSTALL)
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5067
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5068
[Uninstall]
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5069
# 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
  5070
# "Install" to create files. All autopackage API functions
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5071
# that installs files are logged.
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5072
uninstallFromLog
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5073
'
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5074
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5075
    "Created: / 21-12-2010 / 09:06:21 / cg"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5076
!
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5077
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5078
bc_dot_mak
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5079
    "answer a template for the bc.mak makefile.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5080
     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
  5081
     $% characters have to be duplicated.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5082
     Only needed for WIN"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5083
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5084
    ^ self subclassResponsibility
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5085
!
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5086
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5087
bmake_dot_mak
17186
166df90c47a2 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17109
diff changeset
  5088
    "the template code for the bmake.bat file
166df90c47a2 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17109
diff changeset
  5089
     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
  5090
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5091
    ^
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5092
'@REM -------
14336
da3a54f80c09 changed:
Claus Gittinger <cg@exept.de>
parents: 14334
diff changeset
  5093
@REM make using Borland bcc32
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5094
@REM type bmake, and wait...
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5095
@REM do not edit - automatically generated from ProjectDefinition
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5096
@REM -------
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  5097
@SET DEFINES=
18521
ae05aa1bcefd class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 18517
diff changeset
  5098
17186
166df90c47a2 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17109
diff changeset
  5099
make.exe -N -f bc.mak  %%DEFINES%% %%*
166df90c47a2 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17109
diff changeset
  5100
19627
6facd6946531 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19596
diff changeset
  5101
%(SKIP_IF_ARG_IS_APP_TARGET)
19594
2567f65a534c #BUGFIX by sr
sr
parents: 19592
diff changeset
  5102
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5103
%(SUBPROJECT_BMAKE_CALLS)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5104
'
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5105
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5106
    "Created: / 17-08-2006 / 20:04:14 / cg"
14336
da3a54f80c09 changed:
Claus Gittinger <cg@exept.de>
parents: 14334
diff changeset
  5107
    "Modified: / 04-09-2012 / 11:46:22 / cg"
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5108
!
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5109
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5110
builder_baseline_dot_rbspec
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5111
    "For rake-base automatic builder"
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5112
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5113
    ^ '
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5114
# generated from project definition
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5115
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5116
# load package dependencies
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5117
load ''package.deps.rake''
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5118
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5119
# kludge: clear some invalid dependencies of libwidg
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5120
# (should be fixed in baseline)
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5121
clear "stx:libwidg" => "stx:libui"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5122
clear "stx:libwidg2" => "stx:libui"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5123
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5124
project :''%(APPLICATION):baseline'' do
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5125
  # preamble
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5126
  %(PREAMBLE)
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5127
  # --------
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5128
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5129
%(PACKAGES)
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5130
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5131
  application "%(APPLICATION_PACKAGE)"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5132
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5133
  # postamble
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5134
  %(POSTABLE)
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5135
  # ---------
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5136
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5137
end
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5138
'
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5139
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5140
    "Created: / 24-02-2011 / 11:39:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5141
    "Modified: / 27-02-2011 / 12:42:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5142
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5143
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5144
builder_baseline_dot_rbspec_postamble
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5145
    ^ ''
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5146
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5147
    "Created: / 24-02-2011 / 11:58:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5148
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5149
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5150
builder_baseline_dot_rbspec_preamble
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5151
    ^ ''
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5152
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5153
    "Created: / 24-02-2011 / 11:58:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5154
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5155
19309
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  5156
classExternalDeclarationLine_libInit_dot_cc
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  5157
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  5158
^'extern void _%(CLASS)_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);'
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  5159
!
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  5160
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5161
classLine_libInit_dot_cc
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5162
19309
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  5163
^'    _%(CLASS)_Init(pass,__pRT__,snd);'
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5164
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5165
    "Created: / 08-08-2006 / 12:51:44 / fm"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5166
    "Modified: / 08-08-2006 / 15:46:05 / fm"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5167
!
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5168
20582
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5169
generate_osx_info_dot_plist
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  5170
    "template for the info.plist file, which is included in an OS X deployment"
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  5171
    
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  5172
    |plist|
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  5173
20582
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5174
    (plist := self osx_info_dot_plist_dictionary) isNil ifTrue:[^ nil].
20586
fd48de558a00 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 20585
diff changeset
  5175
    MacPlistXMLCoder isNil ifTrue:[
22971
3ddc47d49eee #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 22688
diff changeset
  5176
        Smalltalk loadPackage:'stx:goodies/xml/stx'.
3ddc47d49eee #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 22688
diff changeset
  5177
        Smalltalk loadPackage:'stx:goodies/fileformats/plist'.
20586
fd48de558a00 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 20585
diff changeset
  5178
    ].    
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  5179
    ^ MacPlistXMLCoder encode:plist     
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  5180
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  5181
    "
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  5182
     exept_expecco_application info_dot_plist
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  5183
    "
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  5184
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  5185
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5186
lccmake_dot_mak
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5187
    "the template code for the lccmake.bat file"
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5188
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5189
    ^
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5190
'@REM -------
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5191
@REM make using lcc compiler
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5192
@REM type lccmake, and wait...
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5193
@REM do not edit - automatically generated from ProjectDefinition
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5194
@REM -------
14361
0e832917e039 changed:
Claus Gittinger <cg@exept.de>
parents: 14354
diff changeset
  5195
make.exe -N -f bc.mak -DUSELCC=1 %%*
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5196
19627
6facd6946531 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19596
diff changeset
  5197
%(SKIP_IF_ARG_IS_APP_TARGET)
19595
c004e345266d #BUGFIX by sr
sr
parents: 19594
diff changeset
  5198
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5199
%(SUBPROJECT_LCCMAKE_CALLS)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5200
'
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5201
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5202
    "Created: / 03-09-2012 / 19:49:23 / cg"
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5203
!
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5204
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5205
make_dot_proto
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5206
    "the template code for the make.proto file"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5207
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5208
    ^ self subclassResponsibility
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5209
!
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5210
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5211
make_dot_spec
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5212
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5213
^
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5214
'# $','Header','$
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5215
#
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5216
# DO NOT EDIT
14248
fe9da09afe27 changed: #make_dot_spec
Claus Gittinger <cg@exept.de>
parents: 14233
diff changeset
  5217
# 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
  5218
#
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5219
# Warning: once you modify this file, do not rerun
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5220
# stmkmp or projectDefinition-build again - otherwise, your changes are lost.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5221
#
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5222
# This file contains specifications which are common to all platforms.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5223
#
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5224
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5225
# Do NOT CHANGE THESE DEFINITIONS
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5226
# (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
  5227
#  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
  5228
MODULE=%(MODULE)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5229
MODULE_DIR=%(MODULE_DIRECTORY)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5230
PACKAGE=$(MODULE):$(MODULE_DIR)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5231
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5232
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5233
# Argument(s) to the stc compiler (stc --usage).
13875
2e01d09fa4c4 -headerDir= instead of --headerDir=
Claus Gittinger <cg@exept.de>
parents: 13873
diff changeset
  5234
#  -headerDir=. : create header files locally
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5235
#                (if removed, they will be created as common
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5236
#  -Pxxx       : defines the package
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5237
#  -Zxxx       : a prefix for variables within the classLib
20152
53ff3759ee7e #OTHER by mawalch
mawalch
parents: 20023
diff changeset
  5238
#  -Dxxx       : defines passed to CC for inline C-code
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5239
#  -Ixxx       : include path passed to CC for inline C-code
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5240
#  +optspace   : optimized for space
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5241
#  +optspace2  : optimized more for space
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5242
#  +optspace3  : optimized even more for space
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5243
#  +optinline  : generate inline code for some ST constructs
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5244
#  +inlineNew  : additionally inline new
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5245
#  +inlineMath : additionally inline some floatPnt math stuff
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5246
#
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5247
# ********** OPTIONAL: MODIFY the next line(s) ***
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5248
# STCLOCALOPTIMIZATIONS=+optinline +inlineNew
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5249
# STCLOCALOPTIMIZATIONS=+optspace3
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5250
STCLOCALOPTIMIZATIONS=%(STCOPTIMIZATIONOPTIONS)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5251
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5252
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5253
# Argument(s) to the stc compiler (stc --usage).
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5254
#  -warn            : no warnings
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5255
#  -warnNonStandard : no warnings about ST/X extensions
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5256
#  -warnEOLComments : no warnings about EOL comment extension
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5257
#  -warnPrivacy     : no warnings about privateClass extension
17070
713e0328c7d0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17025
diff changeset
  5258
#  -warnUnused      : no warnings about unused variables
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5259
#
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5260
# ********** OPTIONAL: MODIFY the next line(s) ***
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5261
# STCWARNINGS=-warn
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5262
# STCWARNINGS=-warnNonStandard
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5263
# STCWARNINGS=-warnEOLComments
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5264
STCWARNINGS=%(STCWARNINGOPTIONS)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5265
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  5266
%(CLASSES)
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  5267
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5268
%(OBJECTS)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5269
'
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5270
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5271
    "Created: / 08-08-2006 / 19:31:29 / fm"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5272
    "Modified: / 09-08-2006 / 15:10:57 / fm"
14248
fe9da09afe27 changed: #make_dot_spec
Claus Gittinger <cg@exept.de>
parents: 14233
diff changeset
  5273
    "Modified: / 26-07-2012 / 00:56:03 / cg"
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5274
!
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5275
12428
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  5276
makefile
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5277
^
12428
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  5278
'#
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5279
# DO NOT EDIT
12428
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  5280
#
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5281
# make uses this file (Makefile) only, if there is no
12428
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  5282
# file named "makefile" (lower-case m) in the same directory.
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  5283
# My only task is to generate the real makefile and call make again.
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  5284
# Thereafter, I am no longer used and needed.
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  5285
#
15201
22f01101bac5 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15173
diff changeset
  5286
# MACOSX caveat:
22f01101bac5 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15173
diff changeset
  5287
#   as filenames are not case sensitive (in a default setup),
15385
2ca0c225509e class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15384
diff changeset
  5288
#   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
  5289
#   "Makefile.init", and you have to execute "make -f Makefile.init" to
22f01101bac5 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15173
diff changeset
  5290
#   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
  5291
#   script.
12428
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  5292
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  5293
.PHONY: run
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  5294
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  5295
run: makefile
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5296
        $(MAKE) -f makefile
12428
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  5297
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  5298
#only needed for the definition of $(TOP)
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  5299
include Make.proto
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  5300
14665
fe2327c6d20b class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14646
diff changeset
  5301
makefile: mf
fe2327c6d20b class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14646
diff changeset
  5302
fe2327c6d20b class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14646
diff changeset
  5303
mf:
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5304
        $(TOP)/rules/stmkmf
12428
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  5305
'
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  5306
!
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  5307
14345
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5308
mingwmake_dot_mak
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5309
    "the template code for the mingwmake.bat file"
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5310
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5311
    ^
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5312
'@REM -------
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5313
@REM make using mingw gnu compiler
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5314
@REM type mingwmake, and wait...
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5315
@REM do not edit - automatically generated from ProjectDefinition
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5316
@REM -------
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  5317
@SET DEFINES=
14642
415f684f8808 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14586
diff changeset
  5318
14850
fbe2fa085a67 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14843
diff changeset
  5319
@pushd %(TOP)\rules
fbe2fa085a67 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14843
diff changeset
  5320
@call find_mingw.bat
fbe2fa085a67 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14843
diff changeset
  5321
@popd
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  5322
make.exe -N -f bc.mak %DEFINES% %%USEMINGW_ARG%% %%*
14345
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5323
19627
6facd6946531 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19596
diff changeset
  5324
%(SKIP_IF_ARG_IS_APP_TARGET)
19595
c004e345266d #BUGFIX by sr
sr
parents: 19594
diff changeset
  5325
14345
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5326
%(SUBPROJECT_MINGWMAKE_CALLS)
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5327
'
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5328
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5329
    "Created: / 05-09-2012 / 19:44:51 / cg"
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  5330
    "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
  5331
!
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5332
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5333
objectLine_make_dot_spec
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5334
21236
df609ea04274 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 21102
diff changeset
  5335
    ^'    $(OUTDIR)%(CLASSFILE).$(O) \'
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5336
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5337
    "Created: / 08-08-2006 / 20:16:46 / fm"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5338
    "Modified: / 23-08-2006 / 11:11:38 / cg"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5339
!
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5340
20582
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5341
osx_info_dot_plist_dictionary
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5342
    "template for the info.plist file, which is included in an OS X deployment"
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5343
    
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5344
    |plist pkg icnFilename docTypeDescriptions|
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5345
    
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5346
    plist := Dictionary new.
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5347
    plist at:'CFBundleInfoDictionaryVersion' put:'6.0'.
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5348
    pkg := self package copyReplaceAny:':/' with:$..
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5349
    (pkg endsWith:'.application') ifTrue:[
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5350
        pkg := pkg copyButLast:'.application' size.
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5351
    ].    
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5352
    plist at:'CFBundleIdentifier' put:pkg.
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5353
    plist at:'CFBundleShortVersionString' put:(self fileVersion asString).
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5354
    plist at:'CFBundleVersion' put:(self fileVersion asString).
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5355
    plist at:'LSMinimumSystemVersion' put:'10.6'.
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5356
    "/ plist at:'CFBundleDevelopmentRegion' put:'English'.
20601
2308f69ba99c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20590
diff changeset
  5357
    plist at:'CFBundleExecutable' put:(self applicationName).
20582
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5358
    
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5359
    self isLibraryDefinition ifTrue:[
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5360
        plist at:'CFBundleName' put:(self package copyReplaceAny:':/' with:$.).
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5361
    ] ifFalse:[
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5362
        plist at:'CFBundleName' put:(self applicationName).
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5363
        plist at:'CFBundlePackageType' put:'APPL'.
21562
1218cac5c5c5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21509
diff changeset
  5364
    ].
1218cac5c5c5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21509
diff changeset
  5365
    
20582
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5366
    (icnFilename := self applicationIconFileNameOSX) notNil ifTrue:[    
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5367
        plist at:'CFBundleIconFile' put:icnFilename.
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5368
    ].
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5369
    (docTypeDescriptions := self applicationDocumentTypeDescriptions) notNil ifTrue:[
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5370
        plist at:'CFBundleDocumentTypes' put:
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5371
            (docTypeDescriptions collect:[:each |
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5372
                |d|
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5373
                d := Dictionary new.
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5374
                d at:'CFBundleTypeExtensions' put:{ each extension }.
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5375
                d at:'CFBundleTypeIconFile' put:{ each iconFileOSX }.
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5376
                d at:'CFBundleTypeMimeTypes' put:{ each mimeType }.
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5377
                d at:'CFBundleTypeName' put:(each documentTypeName).
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5378
                d at:'CFBundleTypeRole' put:'Editor'.
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5379
                d
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5380
            ]).
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5381
    ].        
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5382
    ^ plist
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5383
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5384
    "
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5385
     exept_expecco_application info_dot_plist
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5386
    "
21562
1218cac5c5c5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21509
diff changeset
  5387
1218cac5c5c5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21509
diff changeset
  5388
    "Modified (format): / 24-02-2017 / 09:35:09 / cg"
20582
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5389
!
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5390
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5391
packageName_dot_rc
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5392
    "the template code for the <libName>.rc file.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5393
     Only used for WIN"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5394
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5395
^
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5396
'//
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5397
// DO NOT EDIT
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5398
// automagically generated from the projectDefinition: ',self name,'.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5399
//
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5400
VS_VERSION_INFO VERSIONINFO
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5401
  FILEVERSION     %(FILE_VERSION_COMMASEPARATED)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5402
  PRODUCTVERSION  %(PRODUCT_VERSION_COMMASEPARATED)
13769
8259f3bf7fa2 changed: #packageName_dot_rc
Claus Gittinger <cg@exept.de>
parents: 13763
diff changeset
  5403
#if (__BORLANDC__)
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5404
  FILEFLAGSMASK   VS_FF_DEBUG | VS_FF_PRERELEASE
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5405
  FILEFLAGS       VS_FF_PRERELEASE | VS_FF_SPECIALBUILD
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5406
  FILEOS          VOS_NT_WINDOWS32
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5407
  FILETYPE        %(FILETYPE)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5408
  FILESUBTYPE     VS_USER_DEFINED
13769
8259f3bf7fa2 changed: #packageName_dot_rc
Claus Gittinger <cg@exept.de>
parents: 13763
diff changeset
  5409
#endif
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5410
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5411
BEGIN
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5412
  BLOCK "StringFileInfo"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5413
  BEGIN
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5414
    BLOCK "040904E4"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5415
    BEGIN
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5416
      VALUE "CompanyName", "%(COMPANY_NAME)\0"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5417
      VALUE "FileDescription", "%(FILE_DESCRIPTION)\0"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5418
      VALUE "FileVersion", "%(FILE_VERSION)\0"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5419
      VALUE "InternalName", "%(INTERNAL_NAME)\0"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5420
%(LEGAL_COPYRIGHT_LINE)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5421
      VALUE "ProductName", "%(PRODUCT_NAME)\0"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5422
      VALUE "ProductVersion", "%(PRODUCT_VERSION)\0"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5423
      VALUE "ProductDate", "%(PRODUCT_DATE)\0"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5424
    END
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5425
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5426
  END
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5427
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5428
  BLOCK "VarFileInfo"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5429
  BEGIN                               //  Language   |    Translation
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5430
    VALUE "Translation", 0x409, 0x4E4 // U.S. English, Windows Multilingual
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5431
  END
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5432
END
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5433
'
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5434
    "
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5435
     stx_libbasic3 packageName_dot_rc
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5436
     stx_libbasic3 generate_packageName_dot_rc
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5437
    "
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5438
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5439
    "Created: / 08-08-2006 / 19:31:29 / fm"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5440
    "Modified: / 09-08-2006 / 15:10:57 / fm"
13769
8259f3bf7fa2 changed: #packageName_dot_rc
Claus Gittinger <cg@exept.de>
parents: 13763
diff changeset
  5441
    "Modified: / 07-10-2011 / 10:51:34 / cg"
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5442
!
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5443
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5444
package_dot_deps_dot_rake
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5445
    ^ '
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5446
# Package dependencies.
21753
05abb81eb7a6 #OTHER by mawalch
mawalch
parents: 21683
diff changeset
  5447
# Automatically generated by project definition.
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5448
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5449
%(DEPENDENCIES)
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5450
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5451
'
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5452
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5453
    "Created: / 24-02-2011 / 22:32:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
21753
05abb81eb7a6 #OTHER by mawalch
mawalch
parents: 21683
diff changeset
  5454
    "Modified: / 17-05-2017 / 12:35:21 / mawalch"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5455
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5456
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5457
tccmake_dot_mak
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5458
    "the template code for the tccmake.bat file"
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5459
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5460
    ^
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5461
'@REM -------
14336
da3a54f80c09 changed:
Claus Gittinger <cg@exept.de>
parents: 14334
diff changeset
  5462
@REM make using tcc compiler (Tiny-C)
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5463
@REM type tccmake, and wait...
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5464
@REM do not edit - automatically generated from ProjectDefinition
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5465
@REM -------
14361
0e832917e039 changed:
Claus Gittinger <cg@exept.de>
parents: 14354
diff changeset
  5466
make.exe -N -f bc.mak -DUSETCC=1 %%*
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5467
19627
6facd6946531 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19596
diff changeset
  5468
%(SKIP_IF_ARG_IS_APP_TARGET)
19596
67605c5fe0a3 #BUGFIX by sr
sr
parents: 19595
diff changeset
  5469
67605c5fe0a3 #BUGFIX by sr
sr
parents: 19595
diff changeset
  5470
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5471
%(SUBPROJECT_TCCMAKE_CALLS)
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5472
'
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5473
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5474
    "Created: / 03-09-2012 / 19:50:41 / cg"
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5475
!
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5476
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5477
vcmake_dot_mak
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5478
    "the template code for the vcmake.bat file"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5479
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5480
    ^
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5481
'@REM -------
14336
da3a54f80c09 changed:
Claus Gittinger <cg@exept.de>
parents: 14334
diff changeset
  5482
@REM make using Microsoft Visual C compiler
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5483
@REM type vcmake, and wait...
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5484
@REM do not edit - automatically generated from ProjectDefinition
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5485
@REM -------
13789
4071cbd4caf8 changed: #vcmake_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13769
diff changeset
  5486
4071cbd4caf8 changed: #vcmake_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13769
diff changeset
  5487
@if not defined VSINSTALLDIR (
14850
fbe2fa085a67 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14843
diff changeset
  5488
    pushd %(TOP)\rules
fbe2fa085a67 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14843
diff changeset
  5489
    call vcsetup.bat
fbe2fa085a67 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14843
diff changeset
  5490
    popd
13789
4071cbd4caf8 changed: #vcmake_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13769
diff changeset
  5491
)
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  5492
@SET DEFINES=
18521
ae05aa1bcefd class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 18517
diff changeset
  5493
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  5494
make.exe -N -f bc.mak -DUSEVC=1 %DEFINES% %*
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  5495
19627
6facd6946531 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19596
diff changeset
  5496
%(SKIP_IF_ARG_IS_APP_TARGET)
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  5497
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5498
%(SUBPROJECT_VCMAKE_CALLS)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5499
'
12966
396518f8f526 usevc/usebc handling
Claus Gittinger <cg@exept.de>
parents: 12964
diff changeset
  5500
14336
da3a54f80c09 changed:
Claus Gittinger <cg@exept.de>
parents: 14334
diff changeset
  5501
    "Modified: / 04-09-2012 / 11:45:49 / cg"
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5502
! !
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5503
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5504
!ProjectDefinition class methodsFor:'loading'!
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5505
19905
b0aeb6e60706 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 19898
diff changeset
  5506
checkForLoad
21563
f1041933ad1a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21562
diff changeset
  5507
    "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
  5508
b0aeb6e60706 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 19898
diff changeset
  5509
    self supportedOnPlatform ifFalse:[
b0aeb6e60706 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 19898
diff changeset
  5510
        PackageNotCompatibleError raiseWith:self package.
b0aeb6e60706 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 19898
diff changeset
  5511
    ].
21563
f1041933ad1a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21562
diff changeset
  5512
f1041933ad1a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21562
diff changeset
  5513
    "Modified (comment): / 24-02-2017 / 10:06:44 / cg"
19905
b0aeb6e60706 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 19898
diff changeset
  5514
!
b0aeb6e60706 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 19898
diff changeset
  5515
12397
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  5516
ensureFullyLoaded
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  5517
    "ensure that all classes and extensions are loaded properly.
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  5518
     This is normally no problem for compiled classLibs - however, if a package
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  5519
     has only be installedAsAutoloaded, some classes might want to ensure that
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  5520
     when being loaded themself."
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  5521
16892
8c354250e8a2 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16854
diff changeset
  5522
    self supportedOnPlatform ifFalse:[^ self].
8c354250e8a2 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16854
diff changeset
  5523
12397
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  5524
    self hasAllExtensionsLoaded ifFalse:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5525
        self breakPoint:#cg.
12397
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  5526
    ].
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  5527
    self hasAllClassesFullyLoaded ifFalse:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5528
        self hasAllClassesLoaded ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5529
            self breakPoint:#cg.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5530
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5531
        self installAutoloadedClasses.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5532
        self classes do:[:cls | cls autoload ].
12397
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  5533
    ].
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  5534
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  5535
    "
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  5536
     stx_libbasic ensureFullyLoaded
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  5537
    "
12731
ffec4d9573bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12705
diff changeset
  5538
    "Verbose := true
ffec4d9573bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12705
diff changeset
  5539
     stx_libjavascript hasAllExtensionsLoaded
ffec4d9573bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12705
diff changeset
  5540
    "
12735
215f7514f56b comment/format in: #ensureFullyLoaded
Claus Gittinger <cg@exept.de>
parents: 12731
diff changeset
  5541
    "Verbose := true
215f7514f56b comment/format in: #ensureFullyLoaded
Claus Gittinger <cg@exept.de>
parents: 12731
diff changeset
  5542
     stx_goodies_soap_xe hasAllExtensionsLoaded
215f7514f56b comment/format in: #ensureFullyLoaded
Claus Gittinger <cg@exept.de>
parents: 12731
diff changeset
  5543
    "
13689
9d93d5e56029 changed: #ensureFullyLoaded
Claus Gittinger <cg@exept.de>
parents: 13688
diff changeset
  5544
9d93d5e56029 changed: #ensureFullyLoaded
Claus Gittinger <cg@exept.de>
parents: 13688
diff changeset
  5545
    "Modified: / 12-09-2011 / 16:57:53 / cg"
12397
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  5546
!
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  5547
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5548
load
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5549
    "load the project
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5550
     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
  5551
     false if the package's classes have been already present."
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5552
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5553
    ^ self loadAsAutoloaded:false.
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
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5556
loadAsAutoloaded:asAutoloaded
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5557
    "load the project.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5558
     If asAutoloaded == true, install all new classes as autoloaded.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5559
     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
  5560
     false if the package's classes have been already present."
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5561
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5562
    |newStuffHasBeenLoaded meOrMySecondIncarnation|
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5563
16892
8c354250e8a2 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16854
diff changeset
  5564
    self supportedOnPlatform ifFalse:[^ false].
8c354250e8a2 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16854
diff changeset
  5565
13614
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  5566
    self projectIsLoaded ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5567
        asAutoloaded ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5568
            "/ to be considered !!
13614
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  5569
"/            self isFullyLoaded ifFalse:[
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  5570
"/                self hasAllExtensionsLoaded ifFalse:[
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  5571
"/                    self loadExtensions.
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  5572
"/                ].
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  5573
"/                self loadAllAutoloadedClasses
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  5574
"/            ].
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5575
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5576
        ^ false
13614
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  5577
    ].
17587
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5578
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5579
    "/ the following prevents us from crshing if a project definition's prerequisites
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5580
    "/ are wrong and circular/recursive
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5581
12749
160f7b56e426 oops: leftover halts.
Claus Gittinger <cg@exept.de>
parents: 12748
diff changeset
  5582
    thisContext isRecursive ifTrue:[self breakPoint:#cg. ^ false].    "/ avoid endless loops
15172
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  5583
    (PackagesBeingLoaded includes:self package) ifTrue:[
14851
7be11ef3d914 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14850
diff changeset
  5584
        "/ seems to be a recursive call
7be11ef3d914 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14850
diff changeset
  5585
        ^ false
7be11ef3d914 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14850
diff changeset
  5586
    ].
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5587
15172
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  5588
    PackagesBeingLoaded add:self package.
17587
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5589
    PackageLoadInProgressQuery
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5590
        answerNotifyLoading:self package
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5591
        do:[
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5592
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5593
            [
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5594
                newStuffHasBeenLoaded := false.
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5595
20952
7c5123a5f7a8 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 20778
diff changeset
  5596
                Smalltalk silentLoading ifFalse:[
17587
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5597
                    "/ thisContext fullPrintAll.
20952
7c5123a5f7a8 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 20778
diff changeset
  5598
                    Logger info:('loading %1%2...'
17587
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5599
                                        bindWith:(asAutoloaded ifTrue:['as autoloaded '] ifFalse:[''])
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5600
                                        with:self name).
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5601
                ].
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5602
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5603
                self rememberOverwrittenExtensionMethods.
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5604
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5605
                self activityNotification:'Executing pre-load action'.
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5606
                self executeHooks: #preLoad.
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5607
                self preLoadAction.
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5608
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5609
                meOrMySecondIncarnation := self.
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5610
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5611
                Class withoutUpdatingChangesDo:[
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5612
                    self activityNotification:'Loading prerequisities'.
17698
f6af59ffdc25 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17638
diff changeset
  5613
                    self loadMandatoryPreRequisitesAsAutoloaded:asAutoloaded.
17587
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5614
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5615
                    self checkPrerequisitesForLoading.
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5616
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5617
                    asAutoloaded ifFalse:[
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5618
                        "ignore binary class library load failure - try is the hard way (loading classes)"
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5619
                        PackageLoadError ignoreIn:[
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5620
                            self loadClassLibrary.
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5621
                            "/ could have overloaded my first incarnation
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5622
                            meOrMySecondIncarnation := (Smalltalk at:(self name)) ? self.
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5623
                            meOrMySecondIncarnation ~~ self ifTrue:[
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5624
                                meOrMySecondIncarnation fetchSlotsFrom:self.
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5625
                            ].
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5626
                        ].
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5627
                    ].
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5628
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5629
                    self hasAllExtensionsLoaded ifFalse:[
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5630
                        self activityNotification:'Loading extensions'.
19857
ac71ce9b32dd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 19823
diff changeset
  5631
                        "/ evaluating or here - want extensions to be loaded
17587
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5632
                        newStuffHasBeenLoaded := newStuffHasBeenLoaded | meOrMySecondIncarnation loadExtensions.
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5633
                    ].
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5634
                    (self hasAllClassesLoaded:asAutoloaded not) ifFalse:[
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5635
                        self activityNotification:'Loading classes'.
19857
ac71ce9b32dd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 19823
diff changeset
  5636
                        "/ evaluating or here - want autoloaded classes to be loaded
17587
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5637
                        newStuffHasBeenLoaded := newStuffHasBeenLoaded | (meOrMySecondIncarnation loadAllClassesAsAutoloaded:asAutoloaded).
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5638
                    ].
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5639
                    "/ no, don't load subProjects here - will lead to a recursion, which leads
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5640
                    "/ to some classes being loaded from source (soap)
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5641
                    "/     self activityNotification:'Loading sub projects'.
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5642
                    "/     meOrMySecondIncarnation loadSubProjectsAsAutoloaded:asAutoloaded.
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5643
                ].
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5644
                self activityNotification:('Executing post-load action for %1' bindWith:self package).
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5645
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5646
                "/ mhmh - already done for dll-loaded packages
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5647
                "/ meOrMySecondIncarnation initializeAllClasses.
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5648
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5649
                meOrMySecondIncarnation projectIsLoaded:true.
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5650
                meOrMySecondIncarnation ~~ self ifTrue:[
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5651
                    self projectIsLoaded:true.
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5652
                ].
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5653
            ] ensure:[
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5654
                PackagesBeingLoaded remove:self package ifAbsent:[].
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5655
            ].
17698
f6af59ffdc25 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17638
diff changeset
  5656
            "/ load the other prerequisites
f6af59ffdc25 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17638
diff changeset
  5657
            self loadPreRequisitesAsAutoloaded:asAutoloaded.
15172
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  5658
        ].
13194
8e451f8ff654 changed: #loadAsAutoloaded:
Claus Gittinger <cg@exept.de>
parents: 13178
diff changeset
  5659
    self activityNotification:('Done (%1).' bindWith:self package).
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5660
    ^ newStuffHasBeenLoaded
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5661
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5662
    "Created: / 17-08-2006 / 01:01:41 / cg"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5663
    "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
  5664
    "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
  5665
    "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
  5666
    "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
  5667
!
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5668
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5669
unloadPackage
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5670
    "unload the project.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5671
     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
  5672
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5673
    self projectIsLoaded ifFalse:[^ false].
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5674
    thisContext isRecursive ifTrue:[^ false].
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5675
20952
7c5123a5f7a8 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 20778
diff changeset
  5676
    Smalltalk silentLoading ifFalse:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5677
        "/ thisContext fullPrintAll.
20604
b648faace1ab #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 20601
diff changeset
  5678
        Logger info:'unloading %1' with:self name.
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5679
    ].
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5680
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5681
    self activityNotification:'Executing pre-unload action'.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5682
    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
  5683
    self executeHooks: #preUnload.
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5684
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5685
    self activityNotification:'Restoring original methods'.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5686
    self restoreOverwrittenExtensionMethods.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5687
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5688
    Class withoutUpdatingChangesDo:[
19898
24a7019a1f7e #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 19857
diff changeset
  5689
        self activityNotification:'Unloading subprojects'.
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5690
        self unloadSubProjects.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5691
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5692
        self activityNotification:'Unloading classes'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5693
        self unloadClassLibrary.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5694
        self unloadAllClasses.
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5695
    ].
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5696
    self projectIsLoaded:false.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5697
    ^ 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
  5698
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  5699
    "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
  5700
! !
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5701
12086
9db1452d0645 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12039
diff changeset
  5702
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  5703
!ProjectDefinition class methodsFor:'private'!
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  5704
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5705
abbrevs
13592
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  5706
    "return a dictionary containing my abbreviations;
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  5707
     this dictionary is read from my project-directory's abbrev.stc file,
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  5708
     and cached for future use"
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  5709
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  5710
    |abbrevs|
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  5711
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  5712
    AccessLock critical:[
13959
a2fd3561bb67 changed: #abbrevs
Claus Gittinger <cg@exept.de>
parents: 13950
diff changeset
  5713
        |mustRead file myPackageDirectory|
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5714
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5715
        AbbrevDictionary isNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5716
            AbbrevDictionary := WeakIdentityDictionary new.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5717
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5718
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5719
        mustRead := false.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5720
        abbrevs := AbbrevDictionary at:self ifAbsent:[ mustRead := true. Dictionary new ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5721
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5722
        mustRead ifTrue:[
13959
a2fd3561bb67 changed: #abbrevs
Claus Gittinger <cg@exept.de>
parents: 13950
diff changeset
  5723
            myPackageDirectory := self packageDirectory.
a2fd3561bb67 changed: #abbrevs
Claus Gittinger <cg@exept.de>
parents: 13950
diff changeset
  5724
            myPackageDirectory isNil ifTrue:[
a2fd3561bb67 changed: #abbrevs
Claus Gittinger <cg@exept.de>
parents: 13950
diff changeset
  5725
            ] ifFalse:[
a2fd3561bb67 changed: #abbrevs
Claus Gittinger <cg@exept.de>
parents: 13950
diff changeset
  5726
                file := myPackageDirectory / 'abbrev.stc'.
a2fd3561bb67 changed: #abbrevs
Claus Gittinger <cg@exept.de>
parents: 13950
diff changeset
  5727
                file exists ifTrue: [
a2fd3561bb67 changed: #abbrevs
Claus Gittinger <cg@exept.de>
parents: 13950
diff changeset
  5728
                    file readingFileDo:[:stream |
a2fd3561bb67 changed: #abbrevs
Claus Gittinger <cg@exept.de>
parents: 13950
diff changeset
  5729
                        Smalltalk
a2fd3561bb67 changed: #abbrevs
Claus Gittinger <cg@exept.de>
parents: 13950
diff changeset
  5730
                            withAbbreviationsFromStream:stream
a2fd3561bb67 changed: #abbrevs
Claus Gittinger <cg@exept.de>
parents: 13950
diff changeset
  5731
                            do:[:nm :fn :pkg :cat :sz|
a2fd3561bb67 changed: #abbrevs
Claus Gittinger <cg@exept.de>
parents: 13950
diff changeset
  5732
                                abbrevs at: nm put: (AbbrevEntry new className:nm fileName:fn category:cat numClassInstVars:sz)
a2fd3561bb67 changed: #abbrevs
Claus Gittinger <cg@exept.de>
parents: 13950
diff changeset
  5733
                            ]
a2fd3561bb67 changed: #abbrevs
Claus Gittinger <cg@exept.de>
parents: 13950
diff changeset
  5734
                    ]
a2fd3561bb67 changed: #abbrevs
Claus Gittinger <cg@exept.de>
parents: 13950
diff changeset
  5735
                ].
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5736
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5737
        ].
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5738
    ].
13695
Claus Gittinger <cg@exept.de>
parents: 13694
diff changeset
  5739
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5740
    ^abbrevs
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5741
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5742
    "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
  5743
    "Modified: / 20-01-2012 / 15:42:47 / cg"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5744
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5745
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5746
additionalClassAttributesFor: aClass
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5747
    "Answers additional set of class attributes for given class
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5748
     Individual project definitions may override this method, but
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5749
     overriding method should always merge its attributes with result
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5750
     of 'super additionalClassAttributesFor: aClass'.
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5751
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5752
     Here, we add #autoload attributes to all test cases and
21102
eef23325dbb5 #OTHER by mawalch
mawalch
parents: 20986
diff changeset
  5753
     test resources, as they are not necessary for the package
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5754
     and should not be compiled (because of unwanted dependency
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5755
     on stx:goodies/sunit package)
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  5756
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  5757
     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
  5758
     test-package - by conventions such package should by named
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  5759
     #'module:package/subpackage/tests'
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  5760
    "
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  5761
    ((self package endsWith: '/tests') or:[(self package endsWith: '/test')]) ifFalse:[
17094
49e291c57459 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17070
diff changeset
  5762
        (TestCase notNil and:[aClass inheritsFrom: TestCase]) ifTrue:[^#(autoload)].
49e291c57459 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17070
diff changeset
  5763
        (TestResource notNil and:[aClass inheritsFrom: TestResource]) ifTrue:[^#(autoload)].
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  5764
    ].
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5765
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5766
    "No additional attributes"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5767
    ^#()
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5768
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5769
    "
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5770
        stx_libbasic additionalClassAttributesFor: Object
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5771
        stx_libtool additionalClassAttributesFor: Tools::NavigationHistoryTests
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5772
        stx_goodies_sunit additionalClassAttributesFor: TestCase
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  5773
        stx_goodies_petitparser_tests additionalClassAttributesFor: PPAbstractParseTest
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5774
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5775
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5776
        stx_libtool classNamesAndAttributes_code_ignoreOldEntries:true ignoreOldDefinition: true
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5777
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5778
    "
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5779
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5780
    "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
  5781
    "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
  5782
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5783
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5784
checkIfClassesArePresent
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5785
    "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
  5786
     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
  5787
18684
0c6724851d21 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18575
diff changeset
  5788
    |check nonExistentClasses|
0c6724851d21 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18575
diff changeset
  5789
0c6724851d21 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18575
diff changeset
  5790
    nonExistentClasses := Set new.
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5791
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5792
    check :=
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5793
            [:eachClassName |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5794
                |cls fn wasLoaded failedToLoad numClassInstvars|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5795
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5796
                cls := Smalltalk classNamed:eachClassName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5797
                cls isNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5798
                    Transcript showCR:eachClassName.
18684
0c6724851d21 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18575
diff changeset
  5799
                    nonExistentClasses add:eachClassName.
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5800
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5801
            ].
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5802
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5803
    self allClassNames do:check.
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5804
    self namesAndAttributesIn:(self additionalClassNamesAndAttributes) do:[:nm :attr |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5805
        (attr isEmptyOrNil or:[(attr includes:#autoload) not]) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5806
            check value:nm
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5807
        ].
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5808
    ].
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5809
18684
0c6724851d21 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18575
diff changeset
  5810
    nonExistentClasses notEmpty ifTrue:[
0c6724851d21 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18575
diff changeset
  5811
        Transcript showCR:('"%1" and possibly more classes are missing.\Cannot generate a correct "abbrev.stc" file.' bindWith:nonExistentClasses).
15916
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  5812
        UserPreferences current suppressProjectDefinitionWarnings ifFalse:[
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  5813
            (Dialog confirm:(Dialog classResources
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  5814
                                stringWithCRs:'"%1" and possibly more classes are missing.\Cannot generate a correct "abbrev.stc" file.\\Continue anyway?'
18684
0c6724851d21 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18575
diff changeset
  5815
                                with:nonExistentClasses anElement allBold)) ifFalse:[
15916
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  5816
                AbortOperationRequest raise.
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  5817
            ].
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5818
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5819
        ^ false.
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5820
    ].
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5821
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5822
    ^ true
15916
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  5823
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  5824
    "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
  5825
!
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5826
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5827
classNamesAndAttributesAsSpecArray
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5828
    "given a classNamesAndAttributes array, make this a spec array (array of arrays).
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5829
     This decompresses class-name entries into a one-element array for easier processing"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5830
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5831
    ^ self classNamesAndAttributes
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5832
        collect:[:entry |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5833
            entry isArray ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5834
                entry first isSymbol ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5835
                    entry
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5836
                ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5837
                    (Array with:entry first asSymbol) , (entry copyFrom:2)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5838
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5839
            ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5840
                Array with:entry asSymbol.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5841
            ]].
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5842
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5843
    "Created: / 19-02-2007 / 16:11:53 / cg"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5844
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5845
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5846
classNamesAndAttributesDo: aBlock
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5847
    self namesAndAttributesIn:(self classNamesAndAttributes) do: aBlock
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5848
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5849
    "Modified: / 22-08-2006 / 18:20:21 / cg"
9607
3cae5cf71c03 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9601
diff changeset
  5850
!
3cae5cf71c03 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9601
diff changeset
  5851
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5852
classNamesAndAttributesFromSpecArray:aSpecArray
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5853
    "given a spec array (array of arrays), make this a classNamesAndAttributes array
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5854
     as stored literally in the method.
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5855
     This compresses single element array-elements into plain names
16572
044aad2e50b7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16571
diff changeset
  5856
     (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
  5857
044aad2e50b7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16571
diff changeset
  5858
    |newSpec loadedClasses loadedClassNames itemsForUnloadedClasses
044aad2e50b7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16571
diff changeset
  5859
     entriesByName|
044aad2e50b7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16571
diff changeset
  5860
044aad2e50b7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16571
diff changeset
  5861
    entriesByName := Dictionary new.
16024
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5862
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5863
    newSpec :=
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5864
        aSpecArray
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5865
            collect:[:entry |
17109
7c49508fa1bf class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  5866
                |nm newEntry|
16572
044aad2e50b7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16571
diff changeset
  5867
16024
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5868
                (entry isArray and:[entry size == 1]) ifTrue:[
17109
7c49508fa1bf class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  5869
                    nm := newEntry := entry first.
16572
044aad2e50b7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16571
diff changeset
  5870
                    entriesByName at:nm put:nm.
16024
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5871
                ] ifFalse:[
17109
7c49508fa1bf class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  5872
                    newEntry := entry.
17094
49e291c57459 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17070
diff changeset
  5873
                    (entry isArray and:[entry size > 1]) ifTrue:[
49e291c57459 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17070
diff changeset
  5874
                        nm := entry first.
49e291c57459 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17070
diff changeset
  5875
                        entriesByName at:nm put:entry.
49e291c57459 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17070
diff changeset
  5876
                    ] ifFalse:[
49e291c57459 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17070
diff changeset
  5877
                        nm := entry.
49e291c57459 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17070
diff changeset
  5878
                        entriesByName at:nm put:entry.
49e291c57459 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17070
diff changeset
  5879
                    ].
16572
044aad2e50b7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16571
diff changeset
  5880
                ].
17109
7c49508fa1bf class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  5881
                newEntry
16024
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5882
            ].
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5883
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5884
    "/ extract loaded and unloaded classes.
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5885
    loadedClasses := OrderedCollection new.
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5886
    itemsForUnloadedClasses := OrderedCollection new.
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5887
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5888
    newSpec do:[:entry |
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5889
        |clsName clsOrNil|
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5890
20673
1f955f65538d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 20664
diff changeset
  5891
        (entry isArray and:[entry includes:#autoload]) ifTrue:[
16024
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5892
            itemsForUnloadedClasses add:entry.
20673
1f955f65538d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 20664
diff changeset
  5893
        ] ifFalse:[    
1f955f65538d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 20664
diff changeset
  5894
            clsName := entry isArray ifTrue:[ entry first ] ifFalse:[ entry ].
1f955f65538d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 20664
diff changeset
  5895
            clsOrNil := Smalltalk classNamed:clsName.
1f955f65538d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 20664
diff changeset
  5896
            (clsOrNil notNil and:[clsOrNil isLoaded]) ifTrue:[
1f955f65538d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 20664
diff changeset
  5897
                loadedClasses add:clsOrNil.
1f955f65538d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 20664
diff changeset
  5898
            ] ifFalse:[
1f955f65538d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 20664
diff changeset
  5899
                itemsForUnloadedClasses add:entry.
1f955f65538d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 20664
diff changeset
  5900
            ]
16024
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5901
        ]
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5902
    ].
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  5903
    "/ and sort by load order
16024
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5904
    loadedClassNames := (Class classesSortedByLoadOrder:loadedClasses) collect:[:cls | cls name].
16619
7a48afba2f52 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16602
diff changeset
  5905
    newSpec := loadedClassNames collect:[:nm | entriesByName at:nm ifAbsent:[ { nm . #autoload }]].
16572
044aad2e50b7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16571
diff changeset
  5906
16024
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5907
    "/ reconstruct contents array, unloaded classes last.
16572
044aad2e50b7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16571
diff changeset
  5908
    ^ newSpec asArray , itemsForUnloadedClasses asArray.
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5909
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5910
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  5911
compile:someCode categorized:category
15006
4ddc728c6817 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15005
diff changeset
  5912
    ^ self compile:someCode categorized:category using:nil
4ddc728c6817 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15005
diff changeset
  5913
!
4ddc728c6817 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15005
diff changeset
  5914
4ddc728c6817 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15005
diff changeset
  5915
compile:someCode categorized:category using:compilerOrNil
4ddc728c6817 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15005
diff changeset
  5916
    ^ Class packageQuerySignal
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5917
        answer:self package
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5918
        do:[
15006
4ddc728c6817 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15005
diff changeset
  5919
            (compilerOrNil ? self theMetaclass compilerClass)
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5920
                compile:someCode
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5921
                forClass:self theMetaclass
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5922
                inCategory:category
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5923
        ]
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  5924
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  5925
    "Created: / 23-08-2006 / 14:36:53 / cg"
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  5926
!
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  5927
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5928
compiled_classes
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5929
    ^ self compiled_classNames
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5930
        collect:
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5931
            [:eachName|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5932
                |cls|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5933
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5934
                cls := (Smalltalk at:eachName asSymbol).
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5935
                (cls isNil or:[cls isBehavior not]) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5936
                    Transcript showCR:('ProjectDefinition: missing/invalid class: ', eachName).
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5937
                    cls := nil.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5938
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5939
                cls.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5940
            ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5941
        thenSelect:[:cls | cls notNil]
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5942
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5943
    "Created: / 09-08-2006 / 16:28:15 / fm"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5944
    "Modified: / 09-08-2006 / 18:02:28 / fm"
10251
653b5d0a7713 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
  5945
    "Modified: / 07-12-2006 / 17:48:11 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  5946
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  5947
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5948
compiled_classesDo:aBlock
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5949
    self compiled_classes do:aBlock.
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5950
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5951
    "Created: / 09-08-2006 / 16:28:15 / fm"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5952
    "Modified: / 09-08-2006 / 18:02:28 / fm"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5953
!
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5954
15124
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  5955
compiled_classesForPlatform:arch
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5956
    ^ (self compiled_classNamesForPlatform:arch)
15124
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  5957
        collect:[:eachName | (Smalltalk classNamed:eachName)]
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5958
10251
653b5d0a7713 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
  5959
    "
653b5d0a7713 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
  5960
     stx_libbasic compiled_classesForArchitecture:#win32
653b5d0a7713 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
  5961
     stx_libbasic compiled_classesForArchitecture:#macos
653b5d0a7713 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
  5962
     stx_libbasic compiled_classesForArchitecture:#unix
653b5d0a7713 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
  5963
    "
653b5d0a7713 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
  5964
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5965
    "Created: / 09-08-2006 / 16:28:15 / fm"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5966
    "Modified: / 09-08-2006 / 18:02:28 / fm"
10251
653b5d0a7713 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
  5967
    "Modified: / 07-12-2006 / 17:43:17 / cg"
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5968
!
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5969
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5970
compiled_classes_common
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5971
    ^ self
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5972
        compiled_classNames_common
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5973
            collect:[:eachName |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5974
                |cls|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5975
15124
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  5976
                cls := Smalltalk classNamed:eachName.
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  5977
                cls isNil ifTrue:[
15916
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  5978
                    Transcript showCR:('Warning: Missing/invalid class: %1 - the class is skipped in the list of compiled classes.').
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  5979
                    UserPreferences current suppressProjectDefinitionWarnings ifFalse:[
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  5980
                        self warn:('Missing/invalid class: %1\\%2'
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  5981
                                    bindWith:eachName
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  5982
                                    with:('Warning: The class is skipped in the list of compiled classes.' allBold)) withCRs.
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  5983
                    ].
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5984
                    cls := nil.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5985
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5986
                cls
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5987
            ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5988
            thenSelect:[:cls| cls notNil "isBehavior"]
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5989
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5990
    "Created: / 09-08-2006 / 16:28:15 / fm"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5991
    "Modified: / 09-08-2006 / 18:02:28 / fm"
15916
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  5992
    "Modified: / 28-01-2014 / 21:45:08 / cg"
9607
3cae5cf71c03 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9601
diff changeset
  5993
!
3cae5cf71c03 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9601
diff changeset
  5994
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5995
cvsRevision
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5996
    |rev|
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5997
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5998
    rev := self revision.
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5999
    rev isNil ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6000
        "not yet pubplished"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6001
        ^ #( '0' '1' )
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6002
    ].
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6003
    ^ rev asCollectionOfSubstringsSeparatedBy:$. .
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6004
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6005
    "
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6006
     self cvsRevision
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6007
     stx_libbasic3 cvsRevision
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6008
    "
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6009
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6010
    "Created: / 17-08-2006 / 20:19:03 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  6011
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  6012
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6013
defaultClassAttributesFor: aClass
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6014
    "Answers default set of class attributes for given class.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6015
     This is internal method only, to per-project customization
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6016
     please override either #additionalClassAttributes or
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6017
     #additional classAttributesFor:"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6018
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6019
    | attrs |
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6020
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6021
    "JV @ 2010-06-19
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6022
     Add a programming language attribute for non-smalltalk classes.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6023
     Used by multi-lang enabled loading mechanism"
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6024
    attrs := aClass programmingLanguage isSmalltalk
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6025
                ifTrue:[#()]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6026
                ifFalse:[Array with: (Array with: #lang with: aClass programmingLanguage name asSymbol)].
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6027
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6028
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6029
    "JV @ 2009-10-26
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6030
     Give a project definition to specify additional attributes for given class."
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6031
    attrs := attrs , (self additionalClassAttributesFor: aClass).
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6032
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6033
    ^attrs
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6034
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6035
    "Created: / 19-06-2010 / 10:44:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6036
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6037
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6038
inconsistency:message
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6039
    Dialog warn:message
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  6040
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6041
"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6042
    self searchForNeverCompiledSuperclasses
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6043
    DapasX_Datenbasis searchForNeverCompiledSuperclasses
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6044
"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6045
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6046
    "Created: / 09-08-2006 / 16:32:31 / fm"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  6047
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  6048
9826
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6049
makeOSIncludesWith:fileSeparator from:aString
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6050
    ^ aString copy replaceAny:'/\' with:fileSeparator
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6051
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6052
    "
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6053
     self makeOSIncludesWith:$/ from:'-I$(TOP)/foo/bar'
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6054
     self makeOSIncludesWith:$\ from:'-I$(TOP)/foo/bar'
9826
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6055
    "
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6056
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6057
    "Created: / 06-09-2006 / 18:17:03 / cg"
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6058
!
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6059
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6060
makeUnixIncludes:aString
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6061
    ^ self makeOSIncludesWith:$/ from:aString
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6062
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6063
    "Created: / 06-09-2006 / 18:16:19 / cg"
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6064
!
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6065
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6066
makeWin32Includes:aString
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6067
    ^ self makeOSIncludesWith:$\ from:aString
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6068
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6069
    "Created: / 06-09-2006 / 18:16:13 / cg"
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6070
!
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6071
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6072
mergeClassAttributes: attr1 with: attr2
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6073
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6074
    ^attr1 , (attr2 reject:[:each|attr1 includes: each])
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6075
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6076
    "Created: / 19-06-2010 / 10:50:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6077
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6078
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6079
mergeDefaultClassAttributesFor: aClass with: attributes
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6080
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6081
    ^self mergeClassAttributes: attributes with: (self defaultClassAttributesFor: aClass)
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6082
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6083
    "Created: / 19-06-2010 / 10:51:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6084
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6085
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6086
namesAndAttributesIn:aCollection do: aBlock
18988
955c8abf6510 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 18684
diff changeset
  6087
    aCollection isNil ifTrue:[^ self].
955c8abf6510 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 18684
diff changeset
  6088
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6089
    aCollection do:[:entry |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6090
        |className attributes|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6091
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6092
        entry isArray ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6093
            className := entry.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6094
            attributes := #().
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6095
        ] ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6096
            className := entry first.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6097
            attributes := entry copyFrom:2.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6098
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6099
        aBlock value: className value: attributes
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6100
     ].
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6101
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6102
    "Created: / 22-08-2006 / 18:20:09 / cg"
9621
1d07872787b0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  6103
!
1d07872787b0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  6104
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6105
searchForClasses
10010
69b2dbff964b *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10007
diff changeset
  6106
    "answer all non-private classes that belong to this project.
10005
407485f2a6e0 fix loading:
Stefan Vogel <sv@exept.de>
parents: 9998
diff changeset
  6107
     They are sorted in load order"
407485f2a6e0 fix loading:
Stefan Vogel <sv@exept.de>
parents: 9998
diff changeset
  6108
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6109
    ^ Class classesSortedByLoadOrder:(self searchForClassesWithProject: self package)
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6110
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6111
    "
10010
69b2dbff964b *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10007
diff changeset
  6112
     stx_libbasic3 searchForClasses
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  6113
     stx_goodies_webServer_htmlTree searchForClasses
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6114
    "
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6115
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6116
    "Modified: / 07-08-2006 / 21:56:25 / fm"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6117
    "Created: / 17-08-2006 / 21:18:30 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  6118
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  6119
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6120
searchForClassesWithProject: aProjectID
15098
18e2c7815f52 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15082
diff changeset
  6121
    "answer all public and private classes belonging to aProjectID"
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6122
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6123
    ^ Smalltalk allClasses
15098
18e2c7815f52 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15082
diff changeset
  6124
        select:[:cls | cls package = aProjectID].
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6125
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6126
"
15098
18e2c7815f52 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15082
diff changeset
  6127
    self searchForClassesWithProject: #'exept:ctypes'
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6128
"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6129
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6130
    "Created: / 07-08-2006 / 20:42:39 / fm"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  6131
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  6132
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6133
searchForExtensions
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6134
    ^ self searchForExtensionsWithProject:self package
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6135
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6136
"
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6137
    self searchForExtensions
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6138
    DapasXProject searchForExtensions
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6139
    DapasX_Datenbasis searchForExtensions
10106
c26879b72dfe extensionlist generator was buggy
Claus Gittinger <cg@exept.de>
parents: 10104
diff changeset
  6140
    stx_libtool searchForExtensions
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6141
"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6142
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6143
    "Modified: / 09-08-2006 / 13:01:26 / fm"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6144
    "Created: / 17-08-2006 / 21:17:46 / cg"
10106
c26879b72dfe extensionlist generator was buggy
Claus Gittinger <cg@exept.de>
parents: 10104
diff changeset
  6145
    "Modified: / 23-10-2006 / 11:03:07 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  6146
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  6147
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6148
searchForExtensionsWithProject:aProjectID
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6149
    "search for any class which has extensions from aProjectID.
10086
024ea420d1a6 extension method stuff refactored
Claus Gittinger <cg@exept.de>
parents: 10080
diff changeset
  6150
     Return the extension-methods sorted by classname-selector"
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6151
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6152
    |methods|
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6153
11152
92ef5422f17a code reuse
Claus Gittinger <cg@exept.de>
parents: 11149
diff changeset
  6154
    methods := Smalltalk allExtensionsForPackage:aProjectID.
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6155
    methods
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6156
        sort:[:m1 :m2 |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6157
            |c1 c2|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6158
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6159
            c1 := m1 mclass.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6160
            c2 := m2 mclass.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6161
            c1 == c2 ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6162
                m1 selector < m2 selector
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6163
            ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6164
                (c2 isMeta and:[c1 isMeta not]) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6165
                    true
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6166
                ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6167
                    (c1 isMeta and:[c2 isMeta not]) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6168
                        false
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6169
                    ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6170
                        c1 name < c2 name
9908
eede5b535b1e extensions sorted by name (to avoid confusing cvs-diff)
Claus Gittinger <cg@exept.de>
parents: 9906
diff changeset
  6171
"/                        (c2 isSubclassOf:c1) ifTrue:[
eede5b535b1e extensions sorted by name (to avoid confusing cvs-diff)
Claus Gittinger <cg@exept.de>
parents: 9906
diff changeset
  6172
"/                            true
eede5b535b1e extensions sorted by name (to avoid confusing cvs-diff)
Claus Gittinger <cg@exept.de>
parents: 9906
diff changeset
  6173
"/                        ] ifFalse:[
eede5b535b1e extensions sorted by name (to avoid confusing cvs-diff)
Claus Gittinger <cg@exept.de>
parents: 9906
diff changeset
  6174
"/                            (c1 isSubclassOf:c2) ifTrue:[
eede5b535b1e extensions sorted by name (to avoid confusing cvs-diff)
Claus Gittinger <cg@exept.de>
parents: 9906
diff changeset
  6175
"/                                false
eede5b535b1e extensions sorted by name (to avoid confusing cvs-diff)
Claus Gittinger <cg@exept.de>
parents: 9906
diff changeset
  6176
"/                            ] ifFalse:[
eede5b535b1e extensions sorted by name (to avoid confusing cvs-diff)
Claus Gittinger <cg@exept.de>
parents: 9906
diff changeset
  6177
"/                                "/ leave as is
eede5b535b1e extensions sorted by name (to avoid confusing cvs-diff)
Claus Gittinger <cg@exept.de>
parents: 9906
diff changeset
  6178
"/                                true
eede5b535b1e extensions sorted by name (to avoid confusing cvs-diff)
Claus Gittinger <cg@exept.de>
parents: 9906
diff changeset
  6179
"/                            ].
eede5b535b1e extensions sorted by name (to avoid confusing cvs-diff)
Claus Gittinger <cg@exept.de>
parents: 9906
diff changeset
  6180
"/                        ].
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6181
                    ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6182
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6183
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6184
        ].
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6185
    ^ methods
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6186
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6187
    "
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6188
     self searchForExtensionsWithProject:#'bosch:dapasx'
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6189
     self searchForExtensionsWithProject:#'cg:oyster'
10086
024ea420d1a6 extension method stuff refactored
Claus Gittinger <cg@exept.de>
parents: 10080
diff changeset
  6190
     self searchForExtensionsWithProject:#'stx:libboss'
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6191
    "
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6192
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6193
    "Created: / 17-08-2006 / 21:19:04 / cg"
10086
024ea420d1a6 extension method stuff refactored
Claus Gittinger <cg@exept.de>
parents: 10080
diff changeset
  6194
    "Modified: / 12-10-2006 / 20:45:39 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  6195
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  6196
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6197
searchForProjectsWhichProvideHeaderFiles
9883
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  6198
    |addPackage myPackageID requiredPackages|
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  6199
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  6200
    myPackageID := self package.
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  6201
    requiredPackages := Set new.
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  6202
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  6203
    addPackage :=
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6204
        [:package |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6205
            (package ~= myPackageID) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6206
                true "(package startsWith:'stx:') not" ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6207
                    package ~= PackageId noProjectID ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6208
                        requiredPackages add:package.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6209
                    ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6210
                ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6211
            ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6212
        ].
9883
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  6213
12555
9924562388ed changed: #searchForProjectsWhichProvideHeaderFiles
Claus Gittinger <cg@exept.de>
parents: 12554
diff changeset
  6214
    "/ need them also...
14886
7498476f1ae6 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14885
diff changeset
  6215
    self mandatoryPreRequisites do:[:eachPreRequisitePackage |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6216
        addPackage value:eachPreRequisitePackage
12555
9924562388ed changed: #searchForProjectsWhichProvideHeaderFiles
Claus Gittinger <cg@exept.de>
parents: 12554
diff changeset
  6217
    ].
9924562388ed changed: #searchForProjectsWhichProvideHeaderFiles
Claus Gittinger <cg@exept.de>
parents: 12554
diff changeset
  6218
16554
3f91905247d3 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16541
diff changeset
  6219
    "/ cg: also need include lines for all referenced packages,
3f91905247d3 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16541
diff changeset
  6220
    "/ because otherwise, a reference to a symbol in a namespace
3f91905247d3 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16541
diff changeset
  6221
    "/ is not resolved correctly by stc (which would not know, if the
3f91905247d3 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16541
diff changeset
  6222
    "/ symbol is in Smalltalk or the NameSpace.
3f91905247d3 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16541
diff changeset
  6223
    "/ This happens eg. when referring to a class Foo in namespace N
3f91905247d3 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16541
diff changeset
  6224
    "/ 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
  6225
    "/ It is then only in the referencedPreRequisites's, not the mandatory prereqs.
3f91905247d3 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16541
diff changeset
  6226
    "/ 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
  6227
    "/ mandatoryPrereqs right away. Discuss this with sv.
3f91905247d3 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16541
diff changeset
  6228
    self referencedPreRequisites do:[:eachPreRequisitePackage |
3f91905247d3 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16541
diff changeset
  6229
        addPackage value:eachPreRequisitePackage
3f91905247d3 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16541
diff changeset
  6230
    ].
3f91905247d3 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16541
diff changeset
  6231
10788
f2ff69add7e1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10785
diff changeset
  6232
    self compiled_classesDo:[:cls |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6233
        cls allSuperclassesDo:[:eachSuperClass |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6234
            addPackage value:(eachSuperClass package)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6235
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6236
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6237
        cls allPrivateClassesDo:[:eachPrivateClass |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6238
            eachPrivateClass allSuperclassesDo:[:eachSuperClass |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6239
                eachSuperClass isPrivate ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6240
                    addPackage value:(eachSuperClass package)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6241
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6242
            ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6243
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6244
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6245
        cls sharedPoolNames do:[:eachPoolName |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6246
            |eachPoolClass|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6247
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6248
            eachPoolClass := Smalltalk classNamed:eachPoolName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6249
            eachPoolClass isNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6250
                Transcript showCR:('Warning: missing pool: %1 (required by %2)' bindWith:eachPoolName with:cls name)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6251
            ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6252
                eachPoolClass withAllSuperclassesDo:[:eachPoolSuperClass |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6253
                    addPackage value:(eachPoolSuperClass package)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6254
                ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6255
            ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6256
        ].
9883
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  6257
    ].
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  6258
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  6259
    self extensionMethodNames pairWiseDo:[:className :selector |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6260
        |cls|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6261
        ((cls := Smalltalk classNamed:className) notNil and:[cls isLoaded]) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6262
            cls withAllSuperclassesDo:[:eachSuperClass |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6263
                addPackage value:(eachSuperClass package)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6264
            ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6265
        ]
9883
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  6266
    ].
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  6267
    ^ requiredPackages
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6268
9880
378bf1f5afa1 local headers
Claus Gittinger <cg@exept.de>
parents: 9852
diff changeset
  6269
    "
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6270
     stx_libtool searchForProjectsWhichProvideHeaderFiles
14939
9e38d1deb712 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14930
diff changeset
  6271
     cg_demos_helloWorld searchForProjectsWhichProvideHeaderFiles
16554
3f91905247d3 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16541
diff changeset
  6272
     cg_tools_emulators_freecell searchForProjectsWhichProvideHeaderFiles
9880
378bf1f5afa1 local headers
Claus Gittinger <cg@exept.de>
parents: 9852
diff changeset
  6273
    "
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6274
10251
653b5d0a7713 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
  6275
    "Created: / 07-12-2006 / 17:46:38 / cg"
13216
ef64e67606c5 changed:
Claus Gittinger <cg@exept.de>
parents: 13194
diff changeset
  6276
    "Modified: / 18-01-2011 / 17:58:33 / cg"
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6277
!
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6278
9667
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  6279
searchForSiblingProjects
10132
e2afb1e0363a Add some documentation
Stefan Vogel <sv@exept.de>
parents: 10129
diff changeset
  6280
    "answer all the packages (package names) having the my parent package"
e2afb1e0363a Add some documentation
Stefan Vogel <sv@exept.de>
parents: 10129
diff changeset
  6281
9667
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  6282
    |myPackage myParentPackage|
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  6283
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  6284
    myPackage := self package asPackageId.
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  6285
    myParentPackage := myPackage parentPackage.
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  6286
    myParentPackage isNil ifTrue:[^ #() ].
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  6287
19476
a4c6bb123422 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 19309
diff changeset
  6288
    ^ Smalltalk allPackageIDs
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6289
        select:[:projectID |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6290
            |thisPackage|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6291
            thisPackage := projectID asPackageId.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6292
            (thisPackage parentPackage = myParentPackage)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6293
            and:[ thisPackage ~= myPackage ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6294
        ]
9667
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  6295
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  6296
    "
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  6297
     self searchForSiblingProjects
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  6298
     bosch_dapasx_Application searchForSiblingProjects
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  6299
     stx_goodies_refactoryBrowser_changes searchForSiblingProjects
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  6300
    "
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  6301
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  6302
    "Modified: / 07-08-2006 / 21:56:25 / fm"
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  6303
    "Created: / 23-08-2006 / 15:06:12 / cg"
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  6304
!
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  6305
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6306
searchForSubProjects
10132
e2afb1e0363a Add some documentation
Stefan Vogel <sv@exept.de>
parents: 10129
diff changeset
  6307
    "answer all packages (package names), that are my subProjects"
e2afb1e0363a Add some documentation
Stefan Vogel <sv@exept.de>
parents: 10129
diff changeset
  6308
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6309
    |myPackage|
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6310
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6311
    myPackage := self package.
19476
a4c6bb123422 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 19309
diff changeset
  6312
    ^ Smalltalk allPackageIDs
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6313
        select:[:projectID |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6314
            projectID ~= PackageId noProjectID
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6315
            and:[ (projectID asPackageId parentPackage) = myPackage ]].
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6316
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6317
    "
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6318
     self searchForSubProjects
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6319
     bosch_dapasx_Application searchForSubProjects
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6320
     stx_goodies_refactoryBrowser_changes searchForSubProjects
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6321
    "
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6322
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6323
    "Created: / 07-08-2006 / 20:42:39 / fm"
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6324
    "Modified: / 07-08-2006 / 21:56:25 / fm"
10215
2d5aaeab5718 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10212
diff changeset
  6325
    "Modified: / 05-12-2006 / 18:04:27 / cg"
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6326
!
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6327
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6328
setupForType:typeOrNil
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  6329
    typeOrNil = GUIApplicationType ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6330
        self compile:
12425
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  6331
'isGUIApplication
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  6332
    "return true, if this is a GUI application.
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  6333
     (these need more libraries and use a different startup procedure)"
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  6334
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  6335
    ^ true
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  6336
'
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6337
             categorized:'description'.
15070
697f39951cc4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15069
diff changeset
  6338
        self setSuperclass: ApplicationDefinition.
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6339
        ^ self
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6340
    ].
12856
1651184275a2 comment/format in: #setupForType:
Claus Gittinger <cg@exept.de>
parents: 12804
diff changeset
  6341
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  6342
    typeOrNil = NonGUIApplicationType ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6343
        self compile:
12425
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  6344
'isGUIApplication
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  6345
    "return true, if this is a GUI application.
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  6346
     (these need more libraries and use a different startup procedure)"
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  6347
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  6348
    ^ false
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  6349
'
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6350
             categorized:'description'.
15070
697f39951cc4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15069
diff changeset
  6351
        self setSuperclass: ApplicationDefinition.
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6352
        ^ self
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6353
    ].
12856
1651184275a2 comment/format in: #setupForType:
Claus Gittinger <cg@exept.de>
parents: 12804
diff changeset
  6354
12349
6493b6124da3 changed:
fm
parents: 12339
diff changeset
  6355
    self theMetaclass removeSelector: #isGUIApplication.
15070
697f39951cc4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15069
diff changeset
  6356
    self setSuperclass: LibraryDefinition.
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6357
    ^ self.
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6358
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6359
    "Created: / 23-08-2006 / 14:26:10 / cg"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6360
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6361
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6362
shouldExcludeTest: test
16257
5772bfdc494b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16256
diff changeset
  6363
    ^ self excludedFromTestSuite contains:[:spec|
5772bfdc494b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16256
diff changeset
  6364
            (spec isSymbol and:[test class name == spec])
5772bfdc494b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16256
diff changeset
  6365
            or:[spec isArray and:[test class name == spec first and:[test selector == spec second]]]
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6366
        ].
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6367
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6368
    "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
  6369
!
31a64a7d03fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18224
diff changeset
  6370
31a64a7d03fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18224
diff changeset
  6371
verbose:aBoolean
31a64a7d03fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18224
diff changeset
  6372
    "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
  6373
31a64a7d03fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18224
diff changeset
  6374
    Verbose := aBoolean
31a64a7d03fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18224
diff changeset
  6375
31a64a7d03fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18224
diff changeset
  6376
    "
31a64a7d03fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18224
diff changeset
  6377
     self verbose:true
31a64a7d03fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18224
diff changeset
  6378
     self verbose:false
31a64a7d03fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18224
diff changeset
  6379
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  6380
! !
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  6381
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6382
!ProjectDefinition class methodsFor:'private-extension handling'!
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6383
15057
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  6384
extensionOverwriteInfo
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  6385
    ^ extensionOverwriteInfo
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  6386
!
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  6387
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  6388
fetchSlotsFrom:myFirstIncarnation
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  6389
    "this is invoked in a just loaded instance of myself,
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  6390
     to fetch the safe and extensionInfo from my first incarnation"
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  6391
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  6392
    safeForOverwrittenMethods := myFirstIncarnation safeForOverwrittenMethods.
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  6393
    extensionOverwriteInfo := myFirstIncarnation extensionOverwriteInfo.
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  6394
!
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  6395
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6396
hasSavedOverwrittenMethods
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6397
    "true, if any of my methods was overwritten by another loaded package.
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6398
     These methods are now in my safe"
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6399
12208
0b65ddcb68f2 added: #hasSafedOverwrittenMethods
Michael Beyl <mb@exept.de>
parents: 12202
diff changeset
  6400
    ^ safeForOverwrittenMethods notEmptyOrNil
0b65ddcb68f2 added: #hasSafedOverwrittenMethods
Michael Beyl <mb@exept.de>
parents: 12202
diff changeset
  6401
!
0b65ddcb68f2 added: #hasSafedOverwrittenMethods
Michael Beyl <mb@exept.de>
parents: 12202
diff changeset
  6402
14984
082fe75214ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14982
diff changeset
  6403
methodOverwrittenBy:anExtensionMethod
12213
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  6404
    "return the (hidden) original method, which was located in another package
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  6405
     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
  6406
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  6407
    |mclass selector oldPackage|
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  6408
12218
a3662ecd1438 changed: #methodOverwrittenBy:
Claus Gittinger <cg@exept.de>
parents: 12213
diff changeset
  6409
    extensionOverwriteInfo isNil ifTrue:[^ nil].
a3662ecd1438 changed: #methodOverwrittenBy:
Claus Gittinger <cg@exept.de>
parents: 12213
diff changeset
  6410
14984
082fe75214ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14982
diff changeset
  6411
    mclass := anExtensionMethod mclass.
082fe75214ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14982
diff changeset
  6412
    selector := anExtensionMethod selector.
12213
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  6413
    oldPackage := extensionOverwriteInfo at:(mclass name,'>>',selector) ifAbsent:nil.
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  6414
    oldPackage isNil ifTrue:[^ nil].
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6415
    ^ oldPackage asPackageId projectDefinitionClass
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6416
        savedOverwrittenMethodForClass:mclass selector:selector.
12213
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  6417
!
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  6418
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6419
rememberOverwrittenExtensionMethods
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6420
    "before loading, tell other packages to keep a safe reference to any method
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6421
     which gets overloaded by me, and also remember here, whome I have overloaded.
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6422
     This allows for two things:
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6423
        a) correct fileout of the other base-package (for example, when checking in any of its class)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6424
        b) correct unloading of myself"
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6425
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6426
    self extensionMethodNames pairWiseDo:[:className :selector |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6427
        |class oldMethod oldPackage defClass|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6428
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6429
        class := Smalltalk classNamed:className.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6430
        class notNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6431
            oldMethod := class compiledMethodAt:selector.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6432
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6433
        oldMethod notNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6434
            oldPackage := oldMethod package.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6435
            oldPackage ~= PackageId noProjectID ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6436
                defClass := oldPackage asPackageId projectDefinitionClass.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6437
                defClass notNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6438
                    defClass rememberOverwrittenMethod:oldMethod inClass:class.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6439
                    extensionOverwriteInfo isNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6440
                        extensionOverwriteInfo := Dictionary new.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6441
                    ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6442
                    extensionOverwriteInfo at:(className,'>>',selector) put:oldPackage.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6443
                ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6444
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6445
        ].
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6446
    ].
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6447
!
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6448
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6449
rememberOverwrittenMethod:oldMethod inClass:aClass
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6450
    "invoked from another projectDefinition, when that package is about to be loaded
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6451
     and about to overwrite one of my methods.
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6452
     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
  6453
     to correctly reestablish my methods when the other package is unloaded later."
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6454
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6455
    |thisIsOneOfMyMethods selector|
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6456
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6457
    selector := oldMethod selector.
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6458
12293
983b9555f6e8 changed: #rememberOverwrittenMethod:inClass:
Claus Gittinger <cg@exept.de>
parents: 12286
diff changeset
  6459
    thisIsOneOfMyMethods := (self classNames includes:aClass theNonMetaclass name)
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6460
                            or:[ aClass isPrivate and:[ self classNames includes: aClass topOwningClass theNonMetaclass name ]].
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6461
    thisIsOneOfMyMethods ifFalse:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6462
        self extensionMethodNames pairWiseDo:[:extClassName :extSelector |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6463
            extClassName = aClass name ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6464
                selector = extSelector ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6465
                    thisIsOneOfMyMethods := true
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6466
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6467
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6468
        ]
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6469
    ].
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6470
    thisIsOneOfMyMethods ifFalse:[
17454
f543998a9ed1 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17404
diff changeset
  6471
        "/ self error:'oops - this is not one of my methods' mayProceed:true.
f543998a9ed1 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17404
diff changeset
  6472
        Transcript showCR:self name,' [warning]:not one of my methods in rememberOverwritten'.
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6473
        ^ self
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6474
    ].
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6475
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6476
    safeForOverwrittenMethods isNil ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6477
        safeForOverwrittenMethods := Dictionary new.
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6478
    ].
14984
082fe75214ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14982
diff changeset
  6479
    safeForOverwrittenMethods at:(aClass name,'>>',selector) put:oldMethod.
12213
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  6480
!
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  6481
12624
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  6482
restoreOverwrittenExtensionMethods
21764
5708b39547db #DOCUMENTATION by mawalch
mawalch
parents: 21753
diff changeset
  6483
    "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
  6484
     which got overloaded by me.
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  6485
     Unfinished!!"
12624
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  6486
16786
c512597b9323 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16682
diff changeset
  6487
    extensionOverwriteInfo notEmptyOrNil ifTrue:[
c512597b9323 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16682
diff changeset
  6488
        self extensionMethodNames pairWiseDo:[:className :selector |
c512597b9323 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16682
diff changeset
  6489
            |class oldMethod oldPackage|
c512597b9323 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16682
diff changeset
  6490
c512597b9323 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16682
diff changeset
  6491
            oldPackage := extensionOverwriteInfo at:(className,'>>',selector).
c512597b9323 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16682
diff changeset
  6492
            oldPackage notNil ifTrue:[
c512597b9323 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16682
diff changeset
  6493
                class := Smalltalk classNamed:className.
c512597b9323 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16682
diff changeset
  6494
                class notNil ifTrue:[
c512597b9323 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16682
diff changeset
  6495
                    oldMethod := oldPackage savedOverwrittenMethodForClass:class selector:selector.
c512597b9323 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16682
diff changeset
  6496
                    oldMethod notNil ifTrue:[
c512597b9323 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16682
diff changeset
  6497
                        self breakPoint:#cg.
c512597b9323 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16682
diff changeset
  6498
                    ].
c512597b9323 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16682
diff changeset
  6499
                ]
c512597b9323 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16682
diff changeset
  6500
            ].
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6501
        ].
12624
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  6502
    ].
21764
5708b39547db #DOCUMENTATION by mawalch
mawalch
parents: 21753
diff changeset
  6503
5708b39547db #DOCUMENTATION by mawalch
mawalch
parents: 21753
diff changeset
  6504
    "Modified (comment): / 18-05-2017 / 14:49:39 / mawalch"
12624
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  6505
!
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  6506
15057
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  6507
safeForOverwrittenMethods
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  6508
    ^ safeForOverwrittenMethods
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  6509
!
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  6510
12213
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  6511
savedOverwrittenMethodForClass:aClass selector:aSelector
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  6512
    "return one of my saved original methods"
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  6513
13692
2dffef08a4ac changed: #savedOverwrittenMethodForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 13689
diff changeset
  6514
    safeForOverwrittenMethods isNil ifTrue:[^ nil].
12274
a8ef1edeca71 changed:
Claus Gittinger <cg@exept.de>
parents: 12271
diff changeset
  6515
    ^ safeForOverwrittenMethods at:(aClass name,'>>',aSelector) ifAbsent:nil
14981
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  6516
!
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  6517
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  6518
savedOverwrittenMethods
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  6519
    "return my saved original methods"
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  6520
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  6521
    ^ safeForOverwrittenMethods ? #()
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6522
! !
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6523
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6524
!ProjectDefinition class methodsFor:'private-loading'!
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6525
12262
24861bbf25fc added: #checkPrerequisitesForLoading
Claus Gittinger <cg@exept.de>
parents: 12251
diff changeset
  6526
checkPrerequisitesForLoading
14957
ef9a1d4d38aa class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14952
diff changeset
  6527
    "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
  6528
     Raise an error if not"
ef9a1d4d38aa class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14952
diff changeset
  6529
12264
67d427702122 changed:
Claus Gittinger <cg@exept.de>
parents: 12263
diff changeset
  6530
    |classesAlreadyWarned|
67d427702122 changed:
Claus Gittinger <cg@exept.de>
parents: 12263
diff changeset
  6531
67d427702122 changed:
Claus Gittinger <cg@exept.de>
parents: 12263
diff changeset
  6532
    classesAlreadyWarned := Set new.
67d427702122 changed:
Claus Gittinger <cg@exept.de>
parents: 12263
diff changeset
  6533
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6534
    self extensionMethodNames
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6535
        pairWiseDo:[:className :selector |
14957
ef9a1d4d38aa class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14952
diff changeset
  6536
            |class errMsg|
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6537
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6538
            class := Smalltalk classNamed:className.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6539
            class isNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6540
                (classesAlreadyWarned includes:className) ifFalse:[
14957
ef9a1d4d38aa class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14952
diff changeset
  6541
                    (self classNames includes:className) ifTrue:[
ef9a1d4d38aa class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14952
diff changeset
  6542
                        errMsg := 'extension for a class in myself: ',className.
ef9a1d4d38aa class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14952
diff changeset
  6543
                    ] ifFalse:[
ef9a1d4d38aa class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14952
diff changeset
  6544
                        errMsg := 'missing class for extension: ',className.
ef9a1d4d38aa class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14952
diff changeset
  6545
                    ].
20952
7c5123a5f7a8 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 20778
diff changeset
  6546
                    Logger error:errMsg.
23013
7974b3297570 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 22971
diff changeset
  6547
                    self proceedableError:errMsg.
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6548
                    classesAlreadyWarned add:className.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6549
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6550
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6551
        ]
12263
c6d50824fbba comment/format in: #checkPrerequisitesForLoading
Claus Gittinger <cg@exept.de>
parents: 12262
diff changeset
  6552
c6d50824fbba comment/format in: #checkPrerequisitesForLoading
Claus Gittinger <cg@exept.de>
parents: 12262
diff changeset
  6553
    "/ todo: more needed here...
12731
ffec4d9573bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12705
diff changeset
  6554
ffec4d9573bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12705
diff changeset
  6555
    "
ffec4d9573bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12705
diff changeset
  6556
     stx_libjavascript checkPrerequisitesForLoading
ffec4d9573bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12705
diff changeset
  6557
    "
23013
7974b3297570 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 22971
diff changeset
  6558
7974b3297570 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 22971
diff changeset
  6559
    "Modified: / 24-05-2018 / 21:04:56 / Claus Gittinger"
12262
24861bbf25fc added: #checkPrerequisitesForLoading
Claus Gittinger <cg@exept.de>
parents: 12251
diff changeset
  6560
!
24861bbf25fc added: #checkPrerequisitesForLoading
Claus Gittinger <cg@exept.de>
parents: 12251
diff changeset
  6561
15760
5c670f6b5d7f class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15603
diff changeset
  6562
executeHooks: hookSymbol
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  6563
    "Execute all hooks annotated by the given hook-symbol.
15760
5c670f6b5d7f class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15603
diff changeset
  6564
     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
  6565
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  6566
    | cls |
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  6567
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  6568
    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
  6569
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  6570
    [ cls notNil ] whileTrue:[
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  6571
        cls class selectorsAndMethodsDo:[:selector :method|
15760
5c670f6b5d7f class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15603
diff changeset
  6572
            (method annotationAt: hookSymbol) notNil ifTrue:[
14859
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  6573
                method numArgs == 0 ifTrue:[
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  6574
                    self perform: selector
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  6575
                ] ifFalse:[
23013
7974b3297570 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 22971
diff changeset
  6576
                    self proceedableError:'Hook for %1 may not have arguments'.
14859
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  6577
                ]
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  6578
            ]
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  6579
        ].
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  6580
        cls := cls superclass.
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  6581
    ].
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  6582
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  6583
    "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
  6584
    "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
  6585
    "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
  6586
!
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  6587
13614
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  6588
loadAllAutoloadedClasses
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  6589
    self allClasses do:[:cls | cls autoload]
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  6590
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  6591
    "Created: / 21-08-2011 / 17:24:13 / cg"
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  6592
!
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  6593
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6594
loadAllClassesAsAutoloaded:asAutoloaded
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6595
    "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
  6596
     install as autoloaded classes marked to be autoloaded.
10401
6682d28d2ec5 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10399
diff changeset
  6597
     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
  6598
6682d28d2ec5 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10399
diff changeset
  6599
     Answer true, if classes have been loaded"
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  6600
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6601
    ^self loadAllClassesAsAutoloaded:asAutoloaded languages: ProgrammingLanguage all
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6602
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6603
    "Created: / 17-08-2006 / 01:01:14 / cg"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6604
    "Modified: / 26-10-2006 / 12:30:01 / cg"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6605
    "Modified: / 16-08-2009 / 13:31:40 / Jan Vrany <vranyj1@fel.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6606
    "Modified: / 19-06-2010 / 11:37:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6607
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6608
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6609
loadAllClassesAsAutoloaded:asAutoloaded languages: langs
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6610
    "load (fileIn) classes in given languages that should be present -
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6611
     install as autoloaded classes marked to be autoloaded.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6612
     If asAutoloaded == true, all classes will be installed as autoloaded, even if not marked.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6613
     langs should be collection of ProgrammingLanguage available in the system.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6614
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6615
     Answer true, if classes have been loaded"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6616
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6617
    |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
  6618
     classesWhichFailedToLoad|
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6619
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6620
    platformName := OperatingSystem platformName.
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6621
    classNamesToLoad := OrderedCollection new.
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6622
    classNamesToAutoload := OrderedCollection new.
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6623
    classNamesToLangs := Dictionary new.
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6624
12315
71599fb91dcf comment/format in: #packageDirectory
Claus Gittinger <cg@exept.de>
parents: 12314
diff changeset
  6625
    hasClassesToLoad := false.
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6626
    self classNamesAndAttributesDo:[:eachClassname :eachAttributes |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6627
        |eachClassnameSym isAutoload clsLangAttr clsLang cls |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6628
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6629
        eachClassnameSym := eachClassname asSymbol.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6630
        isAutoload := asAutoloaded or:[eachAttributes includes:#autoload].
18574
501c2d9f9fcb class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 18521
diff changeset
  6631
        clsLangAttr := eachAttributes detect:[:a| a isArray and: [a size == 2 and:[a first == #lang]]] ifNone:[nil].
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6632
        clsLang := clsLangAttr
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6633
                    ifNil:[SmalltalkLanguage instance]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6634
                    ifNotNil:[ProgrammingLanguage named: clsLangAttr second ifNone:[nil]].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6635
        classNamesToLangs at: eachClassname put: clsLang.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6636
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6637
        "no need to (re-)load an existing class, but install if should be loaded"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6638
        cls := Smalltalk loadedClassNamed:eachClassnameSym.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6639
        ((cls isNil or:[cls isLoaded not and:[isAutoload not]]) and:[clsLang notNil and:[langs includes: clsLang]]) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6640
            (eachAttributes isEmpty
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6641
             or:[(eachAttributes size == 1 and:[isAutoload])
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6642
             or:[(eachAttributes includes:platformName)
18574
501c2d9f9fcb class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 18521
diff changeset
  6643
             or:[eachAttributes contains:[:a| a isArray]]]]) "/FIXME: Hack."
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6644
                ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6645
                    hasClassesToLoad := true.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6646
                    isAutoload ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6647
                        classNamesToAutoload add:eachClassnameSym.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6648
                    ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6649
                        classNamesToLoad add:eachClassnameSym.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6650
                    ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6651
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6652
        ].
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6653
    ].
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6654
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6655
    hasClassesToLoad ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6656
        loadedClasses := OrderedCollection new.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6657
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6658
        self packageDirectory isNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6659
            classNamesToLoad notEmpty ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6660
                "required classes are missing.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6661
                 Autoloaded classes are considered as optional..."
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6662
                self
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6663
                    error:(self name,'[error] cannot install because packageDirectory is unknown for missing classes: ', classNamesToLoad printString)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6664
                    mayProceed:true.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6665
                ^ false.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6666
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6667
            (self name,'[info] cannot install autoloaded classes because packageDirectory is unknown') infoPrintCR.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6668
            ^ true.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6669
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6670
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6671
        "we need the abbreviations, since sometimes there is no 1-to-1 mapping
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6672
         of class name to file name"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6673
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6674
        Smalltalk recursiveReadAllAbbreviationsFrom:self packageDirectory maxLevels:1.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6675
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6676
        "install autoloaded classes first,
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6677
         some others may depend on them"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6678
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6679
        classNamesToAutoload withIndexDo:[:eachClassName :index|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6680
            ActivityNotification
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6681
                raiseRequestWith: ((100 / classNamesToAutoload size ) * index) rounded
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6682
                errorString: 'Autoloading class ', eachClassName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6683
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6684
            self loadClass: eachClassName asAutoloaded: true language: (classNamesToLangs at: eachClassName) .
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6685
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6686
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6687
        classesWhichFailedToLoad := OrderedCollection new.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6688
        classNamesToLoad notEmpty ifTrue:[
14021
11d015697e44 changed:8 methods
Stefan Vogel <sv@exept.de>
parents: 13968
diff changeset
  6689
            Verbose ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6690
                Transcript showCR:('  %1: filing in missing classes (%2) individually...'
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6691
                                    bindWith:self name with:classNamesToLoad size).
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6692
            ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6693
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6694
        classNamesToLoad withIndexDo:[:eachClassName :index|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6695
            |cls|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6696
            ActivityNotification
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6697
                raiseRequestWith: ((100 / classNamesToLoad size) * index) rounded
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6698
                errorString: 'Loading class ', eachClassName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6699
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6700
            Error handle:[:ex |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6701
                "maybe, fileIn failed, because the load order is wrong.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6702
                 Work around this by installing the class as autoloaded and
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6703
                 loading it"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6704
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6705
                classesWhichFailedToLoad add:eachClassName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6706
                self loadClass: eachClassName asAutoloaded: true language: (classNamesToLangs at: eachClassName).
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6707
            ] do:[
14021
11d015697e44 changed:8 methods
Stefan Vogel <sv@exept.de>
parents: 13968
diff changeset
  6708
                Verbose ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6709
                    Transcript showCR:('  %1: filing in %2...' bindWith:self name with:eachClassName).
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6710
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6711
                cls := self loadClass: eachClassName asAutoloaded: false language: (classNamesToLangs at: eachClassName).
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6712
                cls notNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6713
                    loadedClasses add:cls
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6714
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6715
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6716
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6717
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6718
        classesWhichFailedToLoad do:[:eachClassName |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6719
            (Smalltalk at:eachClassName) autoload.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6720
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6721
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6722
        loadedClasses do:[:eachLoadedClass |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6723
            "do not initialize, if initialize method is inherited"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6724
            (eachLoadedClass theMetaclass includesSelector:#initialize) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6725
                eachLoadedClass initialize
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6726
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6727
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6728
        ^ true.
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6729
    ].
10401
6682d28d2ec5 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10399
diff changeset
  6730
    ^ false.
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6731
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6732
    "Modified: / 26-10-2006 / 12:30:01 / cg"
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  6733
    "Modified: / 16-08-2009 / 13:31:40 / Jan Vrany <vranyj1@fel.cvut.cz>"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6734
    "Created: / 19-06-2010 / 11:35:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6735
    "Modified: / 19-06-2010 / 15:06:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6736
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6737
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6738
loadClass: className asAutoloaded: asAutoloaded language: lang
13592
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  6739
    | packageDir classFile entry category numClassInstVars cls|
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  6740
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  6741
    "Handle smalltalk classes specially to provide backward compatibility"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6742
    lang isSmalltalk ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6743
        entry := self abbrevs at: className ifAbsent:[nil].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6744
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6745
        asAutoloaded ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6746
            category := entry isNil ifTrue:[#autoloaded] ifFalse:[entry category].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6747
            numClassInstVars := entry isNil ifTrue:[0] ifFalse:[entry numClassInstVars].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6748
            cls := Smalltalk
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6749
                installAutoloadedClassNamed: className
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6750
                category: category
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6751
                package: self package
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6752
                revision: nil
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6753
                numClassInstVars:numClassInstVars.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6754
            entry notNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6755
                cls setClassFilename:(entry fileName,'.st').
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6756
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6757
            ^ cls.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6758
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6759
        ^ Smalltalk
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6760
            fileInClass:className
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6761
            package:self package
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6762
            initialize:false
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6763
            lazy:false
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6764
            silent:true
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6765
    ].
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6766
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6767
    "For non-smalltalk language do"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6768
    asAutoloaded ifTrue:[^self error:'Only Smalltalk classes may be autoloaded (yet)'].
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6769
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6770
    packageDir := self packageDirectory asFilename.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6771
    classFile := packageDir / ((Smalltalk fileNameForClass: className) , '.' , lang sourceFileSuffix).
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6772
    classFile exists ifFalse:[^nil].
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6773
    lang fileIn: classFile.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6774
    ^nil "FIXME: should return the class"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6775
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6776
    "Created: / 19-06-2010 / 09:11:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6777
    "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
  6778
    "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
  6779
!
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6780
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6781
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
  6782
    "try to load a binary class library
16146
1637eb12dc30 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16024
diff changeset
  6783
     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
  6784
12295
fbd977f707de *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12294
diff changeset
  6785
    |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
  6786
16894
6224e26f4f2b class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16892
diff changeset
  6787
    self supportedOnPlatform ifFalse:[^ false].
6224e26f4f2b class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16892
diff changeset
  6788
10430
fc34b59eca00 Don not try to load a class library already linked to the executable
Stefan Vogel <sv@exept.de>
parents: 10426
diff changeset
  6789
    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
  6790
fc34b59eca00 Don not try to load a class library already linked to the executable
Stefan Vogel <sv@exept.de>
parents: 10426
diff changeset
  6791
    (Smalltalk isClassLibraryLoaded:libraryName) ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6792
        "already loaded"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6793
        ^ true
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6794
    ].
14021
11d015697e44 changed:8 methods
Stefan Vogel <sv@exept.de>
parents: 13968
diff changeset
  6795
    Verbose ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6796
        Transcript showCR:('  %1: loading classLibrary...' bindWith:self name).
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6797
    ].
12743
c39a4553e1ed changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12742
diff changeset
  6798
    self activityNotification:'Loading classLibrary'.
c39a4553e1ed changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12742
diff changeset
  6799
12295
fbd977f707de *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12294
diff changeset
  6800
    ^ 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
  6801
!
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6802
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6803
loadExtensions
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6804
    "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
  6805
16894
6224e26f4f2b class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16892
diff changeset
  6806
    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
  6807
    self hasAllExtensionsLoaded ifFalse:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6808
        self breakPoint:#cg.
14021
11d015697e44 changed:8 methods
Stefan Vogel <sv@exept.de>
parents: 13968
diff changeset
  6809
        Verbose ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6810
            Transcript showCR:('  %1: filing in extensions...' bindWith:self name).
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6811
        ].
16147
00010c63a9ef class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16146
diff changeset
  6812
        Smalltalk loadExtensionsForPackage:self package.
00010c63a9ef class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16146
diff changeset
  6813
        ^ true.
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6814
    ].
10401
6682d28d2ec5 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10399
diff changeset
  6815
    ^ false.
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6816
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6817
    "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
  6818
!
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6819
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  6820
loadExtensionsForLanguage: lang
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  6821
    "load extension methods for given programming language"
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  6822
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  6823
    | filename file |
16894
6224e26f4f2b class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16892
diff changeset
  6824
6224e26f4f2b class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16892
diff changeset
  6825
    self supportedOnPlatform ifFalse:[^ self].
6224e26f4f2b class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16892
diff changeset
  6826
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  6827
    filename := 'extensions.' , lang sourceFileSuffix.
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  6828
    file := self packageDirectory / filename.
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  6829
    file exists ifTrue:[
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  6830
        lang fileIn: file.
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  6831
    ]
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  6832
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  6833
    "Created: / 17-08-2006 / 00:21:39 / cg"
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  6834
    "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
  6835
!
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  6836
15372
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  6837
loadMandatoryPreRequisitesAsAutoloaded:asAutoloaded
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  6838
    "load those packages which are required for loading.
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  6839
     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
  6840
     package is."
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  6841
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  6842
    |prereq|
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  6843
22186
678e7ba2122f #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 22160
diff changeset
  6844
    self supportedOnPlatform ifFalse:[
678e7ba2122f #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 22160
diff changeset
  6845
        ^ self
678e7ba2122f #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 22160
diff changeset
  6846
    ].
678e7ba2122f #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 22160
diff changeset
  6847
678e7ba2122f #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 22160
diff changeset
  6848
    prereq := self effectiveMandatoryPreRequisites.
15372
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  6849
    prereq notEmpty ifTrue:[
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  6850
        Verbose ifTrue:[
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  6851
            Transcript showCR:('  %1 loading mandatory prerequisites...' bindWith:self name).
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  6852
        ].
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  6853
        self loadPackages:prereq asAutoloaded:asAutoloaded
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  6854
    ].
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  6855
!
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  6856
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6857
loadPackages:aListOfPackages asAutoloaded:asAutoloaded
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6858
    "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
  6859
     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
  6860
14764
2497dc2ff1ab tuned prereq-package loading
Claus Gittinger <cg@exept.de>
parents: 14748
diff changeset
  6861
    Class withoutUpdatingChangesDo:[
14790
28d875953487 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14789
diff changeset
  6862
        aListOfPackages do:[:eachPackageID |
14764
2497dc2ff1ab tuned prereq-package loading
Claus Gittinger <cg@exept.de>
parents: 14748
diff changeset
  6863
            |cls|
2497dc2ff1ab tuned prereq-package loading
Claus Gittinger <cg@exept.de>
parents: 14748
diff changeset
  6864
14812
bdbf34a42482 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14809
diff changeset
  6865
            cls := self definitionClassForPackage:eachPackageID.
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  6866
            (cls isNil or:[cls isLoaded not or:[cls projectIsLoaded not]]) ifTrue:[
15172
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  6867
                Smalltalk loadPackage:eachPackageID asAutoloaded:asAutoloaded.
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  6868
            ].
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6869
        ].
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6870
    ].
13166
aa93e348e5d3 changed: #loadPackages:asAutoloaded:
Claus Gittinger <cg@exept.de>
parents: 13154
diff changeset
  6871
13167
658fc3b51af4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13166
diff changeset
  6872
    "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
  6873
!
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6874
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6875
loadPreRequisitesAsAutoloaded:asAutoloaded
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6876
    "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
  6877
12743
c39a4553e1ed changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12742
diff changeset
  6878
    |prereq|
c39a4553e1ed changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12742
diff changeset
  6879
c39a4553e1ed changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12742
diff changeset
  6880
    prereq := self effectivePreRequisites.
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6881
    prereq notEmpty ifTrue:[
14021
11d015697e44 changed:8 methods
Stefan Vogel <sv@exept.de>
parents: 13968
diff changeset
  6882
        Verbose ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6883
            Transcript showCR:('  %1 loading prerequisites...' bindWith:self name).
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6884
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6885
        self loadPackages:prereq asAutoloaded:asAutoloaded
12743
c39a4553e1ed changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12742
diff changeset
  6886
    ].
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6887
!
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6888
12596
5ed54f811010 added: #loadSubProjects
Claus Gittinger <cg@exept.de>
parents: 12575
diff changeset
  6889
loadSubProjects
5ed54f811010 added: #loadSubProjects
Claus Gittinger <cg@exept.de>
parents: 12575
diff changeset
  6890
    "load other packages (at least the projectDefinitions and their extensions)"
5ed54f811010 added: #loadSubProjects
Claus Gittinger <cg@exept.de>
parents: 12575
diff changeset
  6891
5ed54f811010 added: #loadSubProjects
Claus Gittinger <cg@exept.de>
parents: 12575
diff changeset
  6892
    self loadSubProjectsAsAutoloaded:false.
15395
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  6893
    self effectiveSubProjects do:[:p |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6894
        |subDef|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6895
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6896
        subDef := self definitionClassForPackage:p.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6897
        subDef notNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6898
            subDef loadSubProjects
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6899
        ].
12596
5ed54f811010 added: #loadSubProjects
Claus Gittinger <cg@exept.de>
parents: 12575
diff changeset
  6900
    ].
5ed54f811010 added: #loadSubProjects
Claus Gittinger <cg@exept.de>
parents: 12575
diff changeset
  6901
!
5ed54f811010 added: #loadSubProjects
Claus Gittinger <cg@exept.de>
parents: 12575
diff changeset
  6902
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6903
loadSubProjectsAsAutoloaded:asAutoloaded
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6904
    "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
  6905
15395
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  6906
    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
  6907
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6908
    "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
  6909
!
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
  6910
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6911
old_loadAllClassesAsAutoloaded:asAutoloaded
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6912
    "load (fileIn) classes that should be present -
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6913
     install as autoloaded classes marked to be autoloaded.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6914
     If asAutoloaded == true, all classes will be installed as autoloaded, even if not marked.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6915
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6916
     Answer true, if classes have been loaded"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6917
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6918
    |classNamesToLoad classNamesToAutoload hasClassesToLoad loadedClasses platformName
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6919
     classesWhichFailedToLoad|
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6920
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6921
    platformName := OperatingSystem platformName.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6922
    classNamesToLoad := OrderedCollection new.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6923
    classNamesToAutoload := OrderedCollection new.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6924
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6925
    hasClassesToLoad := false.
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6926
    self classNamesAndAttributesDo:[:eachClassname :eachAttributes |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6927
        |eachClassnameSym isAutoload cls|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6928
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6929
        eachClassnameSym := eachClassname asSymbol.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6930
        isAutoload := asAutoloaded or:[eachAttributes includes:#autoload].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6931
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6932
        "no need to (re-)load an existing class, but install if should be loaded"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6933
        cls := Smalltalk loadedClassNamed:eachClassnameSym.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6934
        (cls isNil or:[cls isLoaded not and:[isAutoload not]]) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6935
            (eachAttributes isEmpty
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6936
             or:[(eachAttributes size == 1 and:[isAutoload])
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6937
             or:[eachAttributes includes:platformName]]) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6938
                hasClassesToLoad := true.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6939
                isAutoload ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6940
                    classNamesToAutoload add:eachClassnameSym.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6941
                ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6942
                    classNamesToLoad add:eachClassnameSym.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6943
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6944
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6945
        ].
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6946
    ].
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6947
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6948
    hasClassesToLoad ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6949
        loadedClasses := OrderedCollection new.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6950
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6951
        self packageDirectory isNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6952
            self
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6953
                error:(self name,'[error] cannot install because packageDirectory is unknown')
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6954
                mayProceed:true.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6955
            ^ false.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6956
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6957
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6958
        "we need the abbreviations, since sometimes there is no 1-to-1 mapping
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6959
         of class name to file name"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6960
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6961
        Smalltalk recursiveReadAllAbbreviationsFrom:self packageDirectory maxLevels:1.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6962
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6963
        "install autoloaded classes first,
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6964
         some others may depend on them"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6965
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6966
        classNamesToAutoload withIndexDo:[:eachClassName :index|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6967
            ActivityNotification
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6968
                raiseRequestWith: ((100 / classNamesToAutoload size ) * index) rounded
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6969
                errorString: 'Autoloading class ', eachClassName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6970
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6971
            Smalltalk
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6972
                installAutoloadedClassNamed:eachClassName
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6973
                category:#autoloaded    "FIXME"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6974
                package:self package
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6975
                revision:nil
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6976
                numClassInstVars:0.     "FIXME"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6977
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6978
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6979
        classesWhichFailedToLoad := OrderedCollection new.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6980
        classNamesToLoad notEmpty ifTrue:[
14021
11d015697e44 changed:8 methods
Stefan Vogel <sv@exept.de>
parents: 13968
diff changeset
  6981
            Verbose ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6982
                Transcript showCR:('  %1: filing in missing classes (%2) individually...'
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6983
                                    bindWith:self name with:classNamesToLoad size).
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6984
            ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6985
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6986
        classNamesToLoad withIndexDo:[:eachClassName :index|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6987
            |cls|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6988
            ActivityNotification
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6989
                raiseRequestWith: ((100 / classNamesToLoad size) * index) rounded
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6990
                errorString: 'Loading class ', eachClassName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6991
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6992
            Error handle:[:ex |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6993
                "maybe, fileIn failed, because the load order is wrong.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6994
                 Work around this by installing the class as autoloaded and
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6995
                 loading it"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6996
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6997
                classesWhichFailedToLoad add:eachClassName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6998
                Smalltalk
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6999
                    installAutoloadedClassNamed:eachClassName
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7000
                    category:#autoloaded    "FIXME"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7001
                    package:self package
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7002
                    revision:nil
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7003
                    numClassInstVars:0.     "FIXME"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7004
            ] do:[
14021
11d015697e44 changed:8 methods
Stefan Vogel <sv@exept.de>
parents: 13968
diff changeset
  7005
                Verbose ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7006
                    Transcript showCR:('  %1: filing in %2...' bindWith:self name with:eachClassName).
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7007
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7008
                cls := Smalltalk
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7009
                            fileInClass:eachClassName
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7010
                            package:self package
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7011
                            initialize:false
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7012
                            lazy:false
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7013
                            silent:true.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7014
                cls notNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7015
                    loadedClasses add:cls
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7016
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7017
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7018
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7019
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7020
        classesWhichFailedToLoad do:[:eachClassName |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7021
            (Smalltalk at:eachClassName) autoload.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7022
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7023
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7024
        loadedClasses do:[:eachLoadedClass |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7025
            "do not initialize, if initialize method is inherited"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7026
            (eachLoadedClass theMetaclass includesSelector:#initialize) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7027
                eachLoadedClass initialize
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7028
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7029
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7030
        ^ true.
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7031
    ].
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7032
    ^ false.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7033
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7034
    "Modified: / 26-10-2006 / 12:30:01 / cg"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7035
    "Modified: / 16-08-2009 / 13:31:40 / Jan Vrany <vranyj1@fel.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7036
    "Created: / 19-06-2010 / 11:36:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7037
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7038
12624
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  7039
unloadAllClasses
20605
0976069c6263 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 20604
diff changeset
  7040
    Logger warning:'unloading not yet fully supported'
12624
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  7041
!
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  7042
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  7043
unloadClassLibrary
20604
b648faace1ab #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 20601
diff changeset
  7044
    Logger warning:'unloading not yet fully supported'
12624
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  7045
!
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  7046
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  7047
unloadSubProjects
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  7048
    "unload other packages"
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  7049
15395
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  7050
    self effectiveSubProjects do:[:p |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7051
        |subDef|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7052
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7053
        subDef := self definitionClassForPackage:p.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7054
        subDef notNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7055
            subDef unloadSubProjects.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7056
            subDef unloadPackage.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7057
        ].
12624
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  7058
    ].
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  7059
!
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  7060
10434
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
  7061
update:anAspectSymbol with:argument from:changedObject
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
  7062
    "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
  7063
     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
  7064
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
  7065
    (changedObject == self class and:[anAspectSymbol == #methodDictionary]) ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7066
        self projectIsLoaded:false.
10434
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
  7067
    ]
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  7068
! !
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  7069
11147
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7070
!ProjectDefinition class methodsFor:'private-prerequisites'!
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7071
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7072
addReferencesToClassesFromGlobalsIn:aSetOfClasses to:usedClassReasons
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  7073
    "helper for searchForPreRequisites"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  7074
11147
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7075
    aSetOfClasses
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7076
        do:[:aClass |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7077
            self
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7078
                addReferencesToClassesFromGlobalsInMethods:
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7079
                    (aClass theNonMetaclass methodDictionary values
15366
5b5b28b61455 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15343
diff changeset
  7080
                        reject:[:m | m isExtension])
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7081
                to:usedClassReasons.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7082
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7083
            self
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7084
                addReferencesToClassesFromGlobalsInMethods:
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7085
                    (aClass theMetaclass methodDictionary values
15366
5b5b28b61455 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15343
diff changeset
  7086
                        reject:[:m | m isExtension])
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7087
                to:usedClassReasons.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7088
        ].
11147
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7089
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7090
    "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
  7091
!
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7092
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7093
addReferencesToClassesFromGlobalsInMethods:someMethods to:usedClassReasons
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  7094
    "helper for searchForPreRequisites"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  7095
11147
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7096
    someMethods do:[:method |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7097
        |resources|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7098
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7099
        resources := method resources.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7100
        (resources isNil
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7101
        or:[ ((resources includesKey:#'ignoreInPrerequisites') not
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7102
              and:[(resources includesKey:#'example') not])])
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7103
        ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7104
            method usedGlobals
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7105
                do:[:global |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7106
                    |globalsName usedClass|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7107
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7108
                    globalsName := global asSymbol.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7109
                    usedClass := Smalltalk at:globalsName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7110
                    (usedClass notNil and:[usedClass isClass and:[usedClass isNameSpace not]]) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7111
                        usedClass name == globalsName ifTrue:[ "/ skip aliases
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7112
                            (usedClassReasons at:usedClass ifAbsentPut:[Set new])
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7113
                                add:(usedClass name, ' - referenced by ', method mclass name,'>>',method selector)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7114
                        ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7115
                    ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7116
                ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7117
            ]
11147
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7118
    ]
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7119
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7120
    "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
  7121
    "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
  7122
!
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7123
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7124
addReferencesToExtensionMethodsIn:someClasses to:usedMethodReasons
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7125
    "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
  7126
     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
  7127
     If found, add the extension method and a reason string to usedReasons.
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7128
     This should find especially sends to extension methods from libcompat."
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7129
16257
5772bfdc494b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16256
diff changeset
  7130
    |allRealExtensions|
5772bfdc494b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16256
diff changeset
  7131
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7132
    "/ 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
  7133
    allRealExtensions := Smalltalk allExtensions
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7134
                            select:[:mthd |
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7135
                                |superClass|
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7136
                                superClass := mthd mclass superclass.
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  7137
                                (superClass isNil or:[superClass whichClassIncludesSelector:mthd selector]) isNil
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7138
                            ].
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7139
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7140
    someClasses do:[:eachClass |
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7141
        eachClass instAndClassMethodsDo:[:method |
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7142
            |resources extensionsSent|
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7143
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7144
            resources := method resources.
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7145
            (resources isNil
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7146
            or:[ ((resources includesKey:#'ignoreInPrerequisites') not
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7147
                  and:[(resources includesKey:#'example') not])])
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7148
            ifTrue:[
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7149
                extensionsSent := allRealExtensions select:[:ext | method messagesSent includes:ext selector].
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7150
                extensionsSent do:[:eachExtensionMethod |
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7151
                    (usedMethodReasons at:eachExtensionMethod ifAbsentPut:[Set new])
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7152
                        add:(eachExtensionMethod selector, ' - sent by ', method mclass name,'>>',method selector)
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7153
                ]
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7154
            ]
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7155
        ]
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7156
    ]
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7157
!
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7158
19955
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7159
allMandatoryPreRequisites
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7160
    "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
  7161
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7162
    ^ self allPreRequisites:#effectiveMandatoryPreRequisites.
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7163
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7164
    "
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7165
     stx_libbasic allMandatoryPreRequisites 
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7166
     stx_libbasic2 allMandatoryPreRequisites
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7167
     stx_libview2 allMandatoryPreRequisites 
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7168
     stx_libcomp allMandatoryPreRequisites  
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7169
    "
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7170
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7171
    "Created: / 06-06-2016 / 12:19:39 / cg"
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7172
!
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7173
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7174
allMandatoryPreRequisitesSorted
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7175
    [
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7176
        ^ self allPreRequisitesSorted:#effectiveMandatoryPreRequisites
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7177
    ] on:Error do:[:ex |
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7178
        (self confirm:(self name,' [warning]: cycle in prerequisites:' ,, Character cr, '    ', (ex parameter printStringWithSeparator:' -> ') ,, Character cr,  'Proceed with incomplete (mandatory) prerequites?'))
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7179
        ifFalse:[
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7180
            AbortOperationRequest raise
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7181
        ].
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7182
        ^ self allPreRequisitesSorted:#mandatoryPreRequisites
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7183
    ].
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7184
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7185
    "Created: / 06-06-2016 / 12:20:40 / cg"
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7186
!
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7187
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7188
allPreRequisites
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7189
    "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
  7190
14885
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  7191
    ^ self allPreRequisites:#effectivePreRequisites.
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7192
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7193
    "
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7194
     stx_libbasic allPreRequisites
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7195
     stx_libbasic2 allPreRequisites
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7196
     stx_libview2 allPreRequisites
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7197
     ubs_application allPreRequisites
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7198
     ubs_application allPreRequisitesSorted
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7199
     exept_expecco_application allPreRequisites
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7200
     exept_expeccoNET_application allPreRequisites
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7201
     alspa_batch_application allPreRequisites"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7202
    "Modified: / 13-04-2011 / 15:30:45 / sr"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7203
    "Modified (comment): / 06-09-2011 / 08:26:06 / cg"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7204
!
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7205
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7206
allPreRequisites:aSelector
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7207
    "answer all (recursive) prerequisite project ids of myself - in random order."
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7208
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7209
    |result|
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7210
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  7211
    result := self
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  7212
        allPreRequisites:aSelector withParentDo:[:parent :prereq |
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7213
            prereq = self package ifTrue:[
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7214
                Transcript showCR:('oops: %1 depends on itself' bindWith:prereq)
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7215
            ].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7216
        ].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7217
    result remove:self package ifAbsent:[].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7218
    ^ result.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7219
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7220
    "
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7221
     stx_libbasic allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7222
     stx_libbasic2 allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7223
     stx_libview2 allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7224
     ubs_application allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7225
     ubs_application allPreRequisitesSorted
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7226
     exept_expecco_application allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7227
     exept_expeccoNET_application allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7228
     alspa_batch_application allPreRequisites"
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7229
    "Modified: / 13-04-2011 / 15:30:45 / sr"
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7230
    "Modified (comment): / 06-09-2011 / 08:26:06 / cg"
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7231
!
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7232
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7233
allPreRequisites:aSelector withParentDo:aBlock
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7234
    "answer all (recursive) prerequisite project ids of myself - in random order.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7235
     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
  7236
     then what ????"
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7237
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7238
    |setOfAllPreRequisites toAdd|
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7239
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7240
    setOfAllPreRequisites := Set new.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7241
    toAdd := Set withAll:(self perform:aSelector).
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7242
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7243
    "is a subproject really a prerequisite??
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7244
     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
  7245
     so the following line has been deleted.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7246
     Unfortunately the meaning of 'subproject' has never been well defined. SV."
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7247
"/    toAdd addAll:self effectiveSubProjects.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7248
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7249
    [toAdd notEmpty] whileTrue:[
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7250
        |aPreRequisiteProjectID def|
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7251
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7252
        aPreRequisiteProjectID := toAdd removeFirst.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7253
        (setOfAllPreRequisites includes:aPreRequisiteProjectID) ifFalse:[
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7254
            setOfAllPreRequisites add:aPreRequisiteProjectID.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7255
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7256
            def := self definitionClassForPackage:aPreRequisiteProjectID.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7257
            def isNil ifTrue:[
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7258
                Transcript showCR:'ProjectDefinition ', aPreRequisiteProjectID, ' is missing - cannot find its preRequisites.'.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7259
            ] ifFalse:[
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7260
                (def perform:aSelector)
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7261
                    select:[:eachSubPreRequisite | (setOfAllPreRequisites includes:eachSubPreRequisite) not]
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7262
                    thenDo:[:eachSubPreRequisite |
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7263
                                Verbose == true ifTrue:[
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7264
                                    Transcript show:'ProjectDefinition preRequisites: '; showCR:(aPreRequisiteProjectID, ' requires ', eachSubPreRequisite).
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7265
                                ].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7266
                                aBlock value:def value:eachSubPreRequisite.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7267
                                toAdd add:eachSubPreRequisite
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7268
                           ].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7269
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7270
                "but subprojects of our prerequisites are also prerequisites"
14994
169c11c0ec6f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14988
diff changeset
  7271
"/ 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
  7272
"/ 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
  7273
"/ 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
  7274
169c11c0ec6f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14988
diff changeset
  7275
"/                def effectiveSubProjects
169c11c0ec6f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14988
diff changeset
  7276
"/                    select:[:eachSubSubRequisite | eachSubSubRequisite ~= self package and:[ (setOfAllPreRequisites includes:eachSubSubRequisite) not ]]
169c11c0ec6f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14988
diff changeset
  7277
"/                    thenDo:[:eachSubSubRequisite |
169c11c0ec6f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14988
diff changeset
  7278
"/                                Verbose == true ifTrue:[
169c11c0ec6f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14988
diff changeset
  7279
"/                                    Transcript show:'ProjectDefinition preRequisites: '; showCR:(aPreRequisiteProjectID, ' hasSub ', eachSubSubRequisite).
169c11c0ec6f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14988
diff changeset
  7280
"/                                ].
169c11c0ec6f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14988
diff changeset
  7281
"/                                aBlock value:def value:eachSubSubRequisite.
169c11c0ec6f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14988
diff changeset
  7282
"/                                toAdd add:eachSubSubRequisite
169c11c0ec6f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14988
diff changeset
  7283
"/                           ].
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7284
            ].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7285
        ]
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7286
    ].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7287
    ^ setOfAllPreRequisites.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7288
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7289
    "
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7290
     stx_libbasic allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7291
     stx_libbasic2 allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7292
     stx_libview2 allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7293
     ubs_application allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7294
     ubs_application allPreRequisitesSorted
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7295
     exept_expecco_application allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7296
     exept_expeccoNET_application allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7297
     alspa_batch_application allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7298
    "
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7299
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7300
    "Created: / 13-04-2011 / 15:23:21 / sr"
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7301
    "Modified: / 20-07-2012 / 18:29:31 / cg"
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7302
!
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7303
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7304
allPreRequisitesSorted
18178
26a44bf122c7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18170
diff changeset
  7305
    [
26a44bf122c7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18170
diff changeset
  7306
        ^ self allPreRequisitesSorted:#effectivePreRequisites
26a44bf122c7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18170
diff changeset
  7307
    ] on:Error do:[:ex |
21509
a02e65126cb3 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 21451
diff changeset
  7308
        (self confirm:(self name,' [warning]: cycle in prerequisites:' ,, Character cr, '    ', (ex parameter printStringWithSeparator:' -> ') ,, Character cr,  'Proceed with incomplete (only mandatory) prerequites?'))
19587
fe022912131e #OTHER by stefan
Stefan Vogel <sv@exept.de>
parents: 19557
diff changeset
  7309
        ifFalse:[
fe022912131e #OTHER by stefan
Stefan Vogel <sv@exept.de>
parents: 19557
diff changeset
  7310
            AbortOperationRequest raise
fe022912131e #OTHER by stefan
Stefan Vogel <sv@exept.de>
parents: 19557
diff changeset
  7311
        ].
18178
26a44bf122c7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18170
diff changeset
  7312
        ^ self allPreRequisitesSorted:#mandatoryPreRequisites
26a44bf122c7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18170
diff changeset
  7313
    ].
21509
a02e65126cb3 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 21451
diff changeset
  7314
a02e65126cb3 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 21451
diff changeset
  7315
    "Modified: / 21-02-2017 / 17:53:35 / cg"
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7316
!
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7317
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7318
allPreRequisitesSorted:aSelector
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7319
    "answer all the prerequisites of this projects sorted in
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7320
     the order they are needed.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7321
     Use this to e.g. compile packages in the dependency order"
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7322
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7323
    |allPreRequisites orderedTuples sortedPackages|
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7324
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7325
    orderedTuples := OrderedCollection new.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7326
    allPreRequisites := self allPreRequisites:aSelector.
16540
12807abd853b Use stable topological sort when sorting prerequisites.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16328
diff changeset
  7327
    allPreRequisites := allPreRequisites collect:[ :e | e asString ].
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7328
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7329
    "/JV@2013-03-13: Added asSortedCollection to make the order of packages
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7330
    "/as stable as possible. Makes merging of makefiles a lot easier.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7331
    allPreRequisites asSortedCollection do:[:eachPackageID |
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7332
        |def preRequisites|
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7333
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7334
        self assert:(eachPackageID ~= self package).
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7335
        orderedTuples add:(Array with:eachPackageID with:self package).
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7336
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7337
        def := self definitionClassForPackage:eachPackageID.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7338
        def isNil ifTrue:[
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7339
            Transcript showCR:'Warning: no definition class for package: ', eachPackageID.
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  7340
            ((self searchForPreRequisites: eachPackageID)
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7341
                fold:[:d1 :d2| d1 addAll:d2; yourself]) keys
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7342
        ] ifFalse:[
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7343
            preRequisites := def perform:aSelector.
16256
466564fe326f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16222
diff changeset
  7344
            preRequisites := preRequisites copyWithoutAll:def excludedFromPreRequisites.
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7345
            preRequisites do:[:eachPrerequisitePackageID|
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7346
                self assert:(eachPrerequisitePackageID ~= eachPackageID).
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7347
                orderedTuples add:(Array with:eachPrerequisitePackageID with:eachPackageID).
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7348
            ].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7349
        ].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7350
    ].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7351
16812
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  7352
    (orderedTuples contains:[:el | el first = el second]) ifTrue:[
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  7353
        self halt:'something seems to depend upon itself'
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7354
    ].
16540
12807abd853b Use stable topological sort when sorting prerequisites.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16328
diff changeset
  7355
    sortedPackages := orderedTuples topologicalSortStable: true.
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7356
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7357
    "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
  7358
     but they are not added, if not present in the first place"
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7359
    ^ sortedPackages select:[:eachProject| allPreRequisites includes:eachProject]
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7360
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7361
    "
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7362
     stx_libbasic allPreRequisitesSorted
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7363
     stx_libbasic2 allPreRequisitesSorted
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7364
     stx_libwidg2 allPreRequisitesSorted
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7365
     exept_expecco allPreRequisitesSorted
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7366
     alspa_batch_application allPreRequisitesSorted
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7367
     ubs_application allPreRequisitesSorted
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7368
    "
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7369
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7370
    "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
  7371
    "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
  7372
!
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7373
19955
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7374
allPreRequisitesWithMandatorySorted
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7375
    "a list of all prerequisites (mandatory and non-mandatory,
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7376
     with the mandatory ones coming first and being sorted by dependency"
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7377
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7378
    |pre mandatory|
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7379
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7380
    mandatory := self allMandatoryPreRequisitesSorted.
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7381
    pre := OrderedSet withAll:mandatory.
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7382
    self allPreRequisites do:[:each |
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7383
        (mandatory includes:each) ifFalse:[ pre add: each ]
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7384
    ].
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7385
    ^ pre
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7386
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7387
    "Created: / 06-06-2016 / 14:30:25 / cg"
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7388
!
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7389
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7390
allReferences
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7391
    "answer all (recursive) projects to which I refer - in random order."
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7392
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7393
    |result|
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7394
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  7395
    result := self
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  7396
        allPreRequisites:#referencedPreRequisites withParentDo:[:parent :prereq |
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7397
            prereq = self package ifTrue:[
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7398
                Transcript showCR:('oops: %1 depends on itself' bindWith:prereq)
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7399
            ].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7400
        ].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7401
    result remove:self package ifAbsent:[].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7402
    ^ result.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7403
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7404
    "
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7405
     stx_libbasic allReferences
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7406
     stx_libbasic2 allReferences
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7407
     stx_libview2 allReferences
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7408
     ubs_application allReferences
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7409
     ubs_application allReferences
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7410
     exept_expecco_application allReferences
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7411
     exept_expeccoNET_application allReferences
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7412
     alspa_batch_application allReferences
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7413
    "
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7414
!
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7415
15082
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  7416
effectiveMandatoryPreRequisites
15372
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  7417
    "get the preRequisites, that are not excluded, which are needed for loading
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  7418
     and compiling (i.e. which must be present BEFORE)"
15082
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  7419
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  7420
    self mandatoryPreRequisites notEmpty ifTrue:[
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  7421
        "this is a new subclass - avoid overhead"
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  7422
        ^ OrderedSet new
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  7423
            addAll:self mandatoryPreRequisites;
15372
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  7424
            "/ addAll:self includedInPreRequisites;
20527
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  7425
            removeAllFoundIn:self excludedFromMandatoryPreRequisites;
15082
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  7426
            removeAllFoundIn:self excludedFromPreRequisites;
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  7427
            yourself.
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  7428
    ].
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  7429
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  7430
    "I am an old subclass, where #preRequisites returns a plain array"
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  7431
    ^ Set new
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  7432
        addAll:self preRequisites;
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  7433
        addAll:self includedInPreRequisites;
20527
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  7434
        removeAllFoundIn:self excludedFromMandatoryPreRequisites;
15082
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  7435
        removeAllFoundIn:self excludedFromPreRequisites;
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  7436
        remove:self package ifAbsent:[];
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  7437
        yourself.
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  7438
!
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  7439
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7440
effectivePreRequisites
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7441
    "get the preRequisites, that are not excluded.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7442
     This method appears to be obsolete, because its functionality
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7443
     is now included in #preRequisites.
20527
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  7444
     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
  7445
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7446
    self mandatoryPreRequisites notEmpty ifTrue:[
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7447
        "this is a new subclass - avoid overhead"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7448
        ^ self preRequisites.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7449
    ].
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7450
15082
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  7451
    "I am an old subclass, where #preRequisites returns a plain array"
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7452
    ^ Set new
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7453
        addAll:self preRequisites;
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7454
        addAll:self includedInPreRequisites;
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7455
        removeAllFoundIn:self excludedFromPreRequisites;
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7456
        remove:self package ifAbsent:[];
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7457
        yourself.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7458
!
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7459
11147
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7460
searchForPreRequisites
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7461
    "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
  7462
     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
  7463
15024
492d300c4d50 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15006
diff changeset
  7464
    ^ self searchForPreRequisites:self package
11147
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7465
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7466
    "
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7467
     self searchForPreRequisites
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7468
     stx_libbasic3 searchForPreRequisites
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7469
     bosch_dapasx_Application searchForPreRequisites
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7470
     bosch_dapasx_pav_browser searchForPreRequisites
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7471
    "
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7472
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7473
    "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
  7474
    "Modified: / 07-08-2006 / 21:56:25 / fm"
13635
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  7475
    "Modified: / 06-09-2011 / 08:30:43 / cg"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7476
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7477
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7478
searchForPreRequisites: packageId
14860
b8bc6ecbd1b0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14859
diff changeset
  7479
    "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
  7480
     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
  7481
     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
  7482
     the second entry are the referenced prereqs (required for loading).
b8bc6ecbd1b0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14859
diff changeset
  7483
     Referenced prereqs are due to elements accessed at execution time (such as globals)"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7484
13635
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  7485
    ^ self searchForPreRequisites: packageId withSubProjects:false
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  7486
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  7487
    "
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  7488
     self searchForPreRequisites
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  7489
     self searchForPreRequisites:#'stx:libwidg3'
14860
b8bc6ecbd1b0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14859
diff changeset
  7490
     self searchForPreRequisites:#'stx:libtool'
13635
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  7491
     bosch_dapasx_Application searchForPreRequisites
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  7492
     bosch_dapasx_pav_browser searchForPreRequisites
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  7493
    "
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  7494
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  7495
    "Modified: / 07-08-2006 / 21:56:25 / fm"
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  7496
    "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
  7497
    "Modified: / 06-09-2011 / 08:30:20 / cg"
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  7498
!
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  7499
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  7500
searchForPreRequisites:packageId withSubProjects:withSubProjectsBoolean
14860
b8bc6ecbd1b0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14859
diff changeset
  7501
    "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
  7502
     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
  7503
     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
  7504
     the second entry are the referenced prereqs (required for loading).
b8bc6ecbd1b0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14859
diff changeset
  7505
     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
  7506
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  7507
    |requiredClasses mandatoryClassesForLoadingWithReasons referencedClassesWithReasons
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7508
     ignoredPackages packageExtractionBlock mandatoryPackageReasons referencedPackageReasons referencedMethodsWithReasons|
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7509
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7510
    mandatoryClassesForLoadingWithReasons := Dictionary new.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7511
    referencedClassesWithReasons := Dictionary new.
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7512
    referencedMethodsWithReasons := Dictionary new.
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7513
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7514
    "my classes are required"
15098
18e2c7815f52 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15082
diff changeset
  7515
    requiredClasses := self searchForClassesWithProject: packageId.
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7516
13635
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  7517
    withSubProjectsBoolean ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7518
        "my subproject's classes are required"
14994
169c11c0ec6f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14988
diff changeset
  7519
        self effectiveSubProjects do:[:eachProjectName |
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7520
            requiredClasses addAll:(self searchForClassesWithProject:eachProjectName asSymbol)
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7521
        ].
13635
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  7522
    ].
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7523
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
  7524
    "/ ..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
  7525
    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
  7526
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  7527
    "all superclasses of my classes
15098
18e2c7815f52 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15082
diff changeset
  7528
     and my subProject's classes (if required) are mandatory.
18e2c7815f52 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15082
diff changeset
  7529
     All shared pools used by my classes are required as well"
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  7530
    requiredClasses do:[:cls |
21509
a02e65126cb3 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 21451
diff changeset
  7531
        (self autoloaded_classNames includes:cls name) ifFalse:[
a02e65126cb3 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 21451
diff changeset
  7532
            cls allSuperclassesDo:[:eachSuperclass |
a02e65126cb3 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 21451
diff changeset
  7533
                (mandatoryClassesForLoadingWithReasons at: eachSuperclass ifAbsentPut:[OrderedSet new])
a02e65126cb3 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 21451
diff changeset
  7534
                    add: (eachSuperclass name, ' - superclass of ', cls name).
a02e65126cb3 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 21451
diff changeset
  7535
            ].
15098
18e2c7815f52 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15082
diff changeset
  7536
        ].
18e2c7815f52 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15082
diff changeset
  7537
        cls sharedPools do:[:eachSharedPool |
18e2c7815f52 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15082
diff changeset
  7538
            (mandatoryClassesForLoadingWithReasons at: eachSharedPool ifAbsentPut:[OrderedSet new])
18e2c7815f52 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15082
diff changeset
  7539
                add: (eachSharedPool name, ' - shared pool used by ', cls name).
18e2c7815f52 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15082
diff changeset
  7540
            eachSharedPool allSuperclassesDo:[:eachSuperclass |
18e2c7815f52 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15082
diff changeset
  7541
                (mandatoryClassesForLoadingWithReasons at: eachSuperclass ifAbsentPut:[OrderedSet new])
18e2c7815f52 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15082
diff changeset
  7542
                    add: (eachSuperclass name, ' - superclass of shared pool ', eachSharedPool name).
18e2c7815f52 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15082
diff changeset
  7543
            ]
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7544
        ]
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7545
    ].
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7546
    "all classes for which I define extensions are mandatory"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7547
    self allExtensionClasses do:[:eachExtendedClass |
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7548
        (mandatoryClassesForLoadingWithReasons at:eachExtendedClass ifAbsentPut:[OrderedSet new])
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7549
            add: (eachExtendedClass name, ' - extended').
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7550
        eachExtendedClass allSuperclassesDo:[:eachSuperclass |
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7551
            (mandatoryClassesForLoadingWithReasons at: eachSuperclass ifAbsentPut:[OrderedSet new])
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7552
                add: (eachSuperclass name, ' - superclass of extended ', eachExtendedClass name).
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7553
        ]
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7554
    ].
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7555
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7556
    "all classes referenced by my classes or my subproject's classes
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7557
     are required. But:
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7558
         only search for locals refered to by my methods (assuming that superclasses'
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7559
         prerequisites are specified in their package)."
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7560
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7561
    self addReferencesToClassesFromGlobalsIn:requiredClasses to:referencedClassesWithReasons.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7562
    self addReferencesToClassesFromGlobalsInMethods:(self searchForExtensionsWithProject:self package) to:referencedClassesWithReasons.
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7563
    self addReferencesToExtensionMethodsIn:requiredClasses to:referencedMethodsWithReasons.
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7564
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7565
    "now map classes to packages and collect the reasons"
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  7566
    packageExtractionBlock :=
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7567
        [:classesWithReasons|
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7568
            |requiredPackageReasons|
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7569
            requiredPackageReasons := Dictionary new.
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  7570
            classesWithReasons keysAndValuesDo:[:usedClass :reasonsPerClass|
15126
5b6a3c2f3c03 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15124
diff changeset
  7571
                (requiredPackageReasons at:usedClass package ifAbsentPut:[Set new])
14885
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  7572
                                addAll:reasonsPerClass.
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7573
            ].
15126
5b6a3c2f3c03 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15124
diff changeset
  7574
            "sort, to avoid differences from one generation to the next one"
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7575
            requiredPackageReasons
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7576
        ].
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7577
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7578
    mandatoryPackageReasons := packageExtractionBlock value:mandatoryClassesForLoadingWithReasons.
15126
5b6a3c2f3c03 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15124
diff changeset
  7579
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7580
    referencedPackageReasons := packageExtractionBlock value:referencedClassesWithReasons.
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7581
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7582
    "and map extension method invocations to packages and collect the reasons"
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7583
    referencedMethodsWithReasons keysAndValuesDo:[:usedMethod :reasonsPerMethod |
15126
5b6a3c2f3c03 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15124
diff changeset
  7584
        (referencedPackageReasons at:usedMethod package ifAbsentPut:[Set new])
5b6a3c2f3c03 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15124
diff changeset
  7585
            addAll:reasonsPerMethod.
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7586
    ].
14885
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  7587
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  7588
    ignoredPackages := Set
14885
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  7589
        with:packageId
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  7590
        with:PackageId noProjectID.
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  7591
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7592
    referencedPackageReasons removeAllKeys:ignoredPackages ifAbsent:[].
15126
5b6a3c2f3c03 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15124
diff changeset
  7593
    "sort, to avoid differences from one generation to the next one"
5b6a3c2f3c03 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15124
diff changeset
  7594
    referencedPackageReasons keysAndValuesDo:[:eachPackageId :eachReasons | referencedPackageReasons at:eachPackageId put:eachReasons asSortedCollection].
14885
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  7595
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  7596
    "don't put classes from subProjects into the required list"
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  7597
    ignoredPackages addAll:(self siblingsAreSubProjects
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  7598
                                ifTrue:[ self searchForSiblingProjects ]
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  7599
                                ifFalse:[ self searchForSubProjects ]) asSet.
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  7600
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7601
    mandatoryPackageReasons removeAllKeys:ignoredPackages ifAbsent:[].
15126
5b6a3c2f3c03 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15124
diff changeset
  7602
    "sort, to avoid differences from one generation to the next one"
5b6a3c2f3c03 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15124
diff changeset
  7603
    mandatoryPackageReasons keysAndValuesDo:[:eachPackageId :eachReasons | mandatoryPackageReasons at:eachPackageId put:eachReasons asSortedCollection].
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7604
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  7605
    ^ Array
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7606
        with:mandatoryPackageReasons
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7607
        with:referencedPackageReasons.
14885
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  7608
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  7609
    "
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7610
     self searchForPreRequisites:#'stx:libwidg3'
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7611
     bosch_dapasx_Application searchForPreRequisites
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7612
     bosch_dapasx_pav_browser searchForPreRequisites
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7613
     self searchForPreRequisites:#'stx:goodies/json' withSubProjects:false
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7614
    "
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7615
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7616
    "Modified: / 07-08-2006 / 21:56:25 / fm"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7617
    "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
  7618
    "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
  7619
    "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
  7620
    "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
  7621
! !
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7622
9585
b26c46ba7c2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9584
diff changeset
  7623
!ProjectDefinition class methodsFor:'queries'!
b26c46ba7c2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9584
diff changeset
  7624
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  7625
allClassNames
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7626
    ^ self classNamesForWhich:[:nm :attr | true ].
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7627
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7628
13559
9f9023caaf50 added: #allClasses
Claus Gittinger <cg@exept.de>
parents: 13544
diff changeset
  7629
allClasses
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  7630
    ^ self allClassNames
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  7631
        collect:[:nm |
13950
a997dd517a4c changed: #allClasses
Claus Gittinger <cg@exept.de>
parents: 13899
diff changeset
  7632
            |cls|
a997dd517a4c changed: #allClasses
Claus Gittinger <cg@exept.de>
parents: 13899
diff changeset
  7633
a997dd517a4c changed: #allClasses
Claus Gittinger <cg@exept.de>
parents: 13899
diff changeset
  7634
            cls := Smalltalk classNamed:nm.
a997dd517a4c changed: #allClasses
Claus Gittinger <cg@exept.de>
parents: 13899
diff changeset
  7635
            cls isNil ifTrue:[
20952
7c5123a5f7a8 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 20778
diff changeset
  7636
                Logger warning:'%1: failed to autoload class %2' with:self name with:nm
13950
a997dd517a4c changed: #allClasses
Claus Gittinger <cg@exept.de>
parents: 13899
diff changeset
  7637
            ].
a997dd517a4c changed: #allClasses
Claus Gittinger <cg@exept.de>
parents: 13899
diff changeset
  7638
            cls
a997dd517a4c changed: #allClasses
Claus Gittinger <cg@exept.de>
parents: 13899
diff changeset
  7639
        ]
a997dd517a4c changed: #allClasses
Claus Gittinger <cg@exept.de>
parents: 13899
diff changeset
  7640
        thenSelect:[:cls | cls notNil ].
13559
9f9023caaf50 added: #allClasses
Claus Gittinger <cg@exept.de>
parents: 13544
diff changeset
  7641
9f9023caaf50 added: #allClasses
Claus Gittinger <cg@exept.de>
parents: 13544
diff changeset
  7642
    "Created: / 06-08-2011 / 15:47:36 / cg"
9f9023caaf50 added: #allClasses
Claus Gittinger <cg@exept.de>
parents: 13544
diff changeset
  7643
!
9f9023caaf50 added: #allClasses
Claus Gittinger <cg@exept.de>
parents: 13544
diff changeset
  7644
13636
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7645
allExtensionClasses
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7646
    "answer the set of classes, which are extended by the package.
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7647
     includes all superclasses of the extended classes"
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7648
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7649
    ^ self extensionClassesWithSuperclasses:true
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7650
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7651
    "
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7652
     stx_libboss allExtensionClasses
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7653
    "
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7654
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7655
    "Created: / 06-09-2011 / 10:15:54 / cg"
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7656
!
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7657
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  7658
autoloaded_classNames
14042
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7659
    "the opposite of compiled class names"
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7660
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7661
    ^ self classNamesForWhich:[:nm :attr | attr notEmptyOrNil and:[attr includes:#autoload]].
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7662
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7663
    "Modified: / 07-08-2006 / 21:25:25 / fm"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7664
    "Created: / 30-08-2007 / 18:48:09 / cg"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7665
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7666
14978
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  7667
canHaveExtensions
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  7668
    "return true, if this class allows extensions from other packages.
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  7669
     Private classes, namespaces and projectDefinitions don't allow this"
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  7670
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  7671
    ^ self isAbstract
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  7672
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  7673
    "
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  7674
     Smalltalk allClasses select:[:each | each canHaveExtensions not]
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  7675
    "
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  7676
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  7677
    "Created: / 30-08-2006 / 15:29:49 / cg"
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  7678
!
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  7679
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  7680
classNames
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7681
    "answer an array containing all the class names of the project's classes"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7682
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7683
    ^ self classNamesAndAttributesAsSpecArray collect:[:entry | entry first].
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7684
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7685
    "
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7686
     stx_libhtml classNames
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7687
     stx_libhtml classNamesAndAttributesAsSpecArray
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7688
    "
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7689
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7690
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  7691
classNamesForWhich:aBlock
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7692
    "a correponding method with real names is generated in my subclasses"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7693
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7694
    |coll|
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7695
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7696
    coll := OrderedCollection new.
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7697
    self classNamesAndAttributesDo:[:nm :attributes |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7698
        (aBlock value:nm value:attributes) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7699
            coll add:nm.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7700
        ].
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7701
    ].
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7702
    ^ coll
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7703
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7704
    "Created: / 07-08-2006 / 19:02:57 / fm"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7705
    "Modified: / 07-08-2006 / 21:25:25 / fm"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7706
    "Modified: / 17-08-2006 / 20:47:20 / cg"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7707
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7708
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7709
classes
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7710
    "list my classes.
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7711
     Project must be loaded - otherwise an error is reported here.
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7712
     Use #classNames if you are only interested in the names"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7713
13728
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  7714
    ^ self classNames collect:[:nm | Smalltalk at:nm ifAbsent:[self error:'Missing class: ',nm]]
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7715
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7716
    "
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7717
     stx_libbasic3 classNames
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7718
     stx_libbasic3 classes
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7719
    "
13728
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  7720
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  7721
    "Modified: / 27-09-2011 / 18:12:33 / cg"
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7722
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7723
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  7724
compiled_classNames
14042
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7725
    "the opposite of autoloaded class names"
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7726
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7727
    ^ self classNamesForWhich:[:nm :attr | attr isEmptyOrNil or:[(attr includes:#autoload) not]].
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7728
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7729
    "Created: / 07-08-2006 / 19:02:57 / fm"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7730
    "Modified: / 07-08-2006 / 21:25:25 / fm"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7731
    "Modified: / 21-08-2006 / 18:48:31 / cg"
14042
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7732
    "Modified (comment): / 05-03-2012 / 12:21:23 / cg"
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7733
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7734
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7735
compiled_classNamesForPlatform
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7736
    "answer the classes to be compiled only for the current platformName"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7737
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7738
    ^ self compiled_classNamesForPlatform:OperatingSystem platformName
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7739
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7740
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7741
compiled_classNamesForPlatform:platformName
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7742
    "answer the classes to be compiled only for platformName
17638
a2feeffaea64 osx stuff
Claus Gittinger <cg@exept.de>
parents: 17587
diff changeset
  7743
     platformName is one of #unix, #win32, #vms or #osx (OperatingSystem platformName)"
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7744
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  7745
    ^ self
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7746
        classNamesForWhich:[:nm :attr |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7747
            (attr includes:#autoload) not and:[attr includes:platformName]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7748
        ].
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7749
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7750
    "Created: / 07-08-2006 / 19:02:57 / fm"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7751
    "Modified: / 07-08-2006 / 21:25:25 / fm"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7752
    "Modified: / 09-10-2006 / 13:30:08 / cg"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7753
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7754
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7755
compiled_classNames_common
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7756
    "classes to be compiled for any platform"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7757
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  7758
    ^ self
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7759
        classNamesForWhich:[:nm :attr |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7760
            attr isEmptyOrNil
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7761
        ].
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7762
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7763
    "Created: / 18-08-2006 / 13:37:51 / cg"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7764
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7765
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7766
compiled_classNames_unix
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7767
    "class, only to be compiled under unix"
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  7768
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7769
    ^ self compiled_classNamesForPlatform:#unix.
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7770
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7771
    "Created: / 18-08-2006 / 13:37:51 / cg"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7772
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7773
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7774
compiled_classNames_windows
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7775
    "class, only to be compiled under windows"
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  7776
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7777
    ^ self compiled_classNamesForPlatform:#win32.
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7778
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7779
    "Created: / 18-08-2006 / 13:37:56 / cg"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7780
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7781
17500
51a43a7cc842 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17472
diff changeset
  7782
compiled_classesForPlatform
51a43a7cc842 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17472
diff changeset
  7783
    "list my classes for the current platform.
51a43a7cc842 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17472
diff changeset
  7784
     Project must be loaded - otherwise an error is reported here.
51a43a7cc842 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17472
diff changeset
  7785
     Use #classNames if you are only interested in the names"
51a43a7cc842 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17472
diff changeset
  7786
51a43a7cc842 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17472
diff changeset
  7787
    ^ self compiled_classNamesForPlatform collect:[:nm | 
51a43a7cc842 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17472
diff changeset
  7788
            Smalltalk at:nm ifAbsent:[self error:'Missing class: ',nm]]
51a43a7cc842 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17472
diff changeset
  7789
51a43a7cc842 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17472
diff changeset
  7790
    "
51a43a7cc842 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17472
diff changeset
  7791
     stx_libbasic compiled_classesForPlatform
51a43a7cc842 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17472
diff changeset
  7792
     stx_libbasic classes
51a43a7cc842 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17472
diff changeset
  7793
    "
51a43a7cc842 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17472
diff changeset
  7794
!
51a43a7cc842 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17472
diff changeset
  7795
13081
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  7796
extensionClasses
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  7797
    "answer the set of classes, which are extended by the package"
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  7798
13636
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7799
    ^ self extensionClassesWithSuperclasses:false
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7800
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7801
    "
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7802
     stx_libboss extensionClasses
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7803
    "
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7804
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7805
    "Modified: / 06-09-2011 / 10:21:44 / cg"
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7806
!
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7807
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7808
extensionClassesWithSuperclasses:withSuperclassesBoolean
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7809
    "answer the set of classes, which are extended by the package"
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7810
13081
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  7811
    |classes|
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  7812
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  7813
    classes := IdentitySet new.
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  7814
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  7815
    self extensionMethodNames pairWiseDo:[:className :selector |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7816
        |mthdCls extendedClass|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7817
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7818
        mthdCls := Smalltalk classNamed:className.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7819
        (mthdCls notNil and:[mthdCls isLoaded]) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7820
            extendedClass := mthdCls theNonMetaclass.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7821
            (classes includes:extendedClass) ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7822
                withSuperclassesBoolean ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7823
                    extendedClass withAllSuperclassesDo:[:eachClass |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7824
                        classes add:eachClass.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7825
                    ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7826
                ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7827
                    classes add:extendedClass.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7828
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7829
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7830
        ].
13081
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  7831
    ].
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  7832
    ^ classes.
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  7833
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  7834
    "
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7835
        stx_libboss extensionClasses
13636
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7836
    "
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7837
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7838
    "Created: / 06-09-2011 / 10:17:06 / cg"
13081
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  7839
!
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  7840
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7841
extensionMethods
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7842
    "list my extension methods.
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7843
     Project must be loaded - otherwise an error is reported here.
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7844
     Use #extensionMethodsNames if you are only interested in the names"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7845
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  7846
    ^ self extensionMethodNames
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7847
        pairWiseCollect:[:className :selector |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7848
            (Smalltalk classNamed:className) compiledMethodAt:selector.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7849
        ].
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7850
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7851
    "
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7852
     stx_libbasic2 extensionMethodNames
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7853
     stx_libbasic2 extensionMethods
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7854
    "
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7855
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7856
13081
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  7857
extensionPackages
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  7858
    "answer the set of packages, which are extended by this package"
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  7859
13636
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7860
    ^ self allExtensionClasses collect:[:eachClass| eachClass package]
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7861
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7862
    "
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7863
        stx_libboss extensionPackages
13636
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7864
    "
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7865
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7866
    "Modified: / 06-09-2011 / 10:20:47 / cg"
13081
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  7867
!
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  7868
10144
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  7869
hasAllClassesFullyLoaded
14957
ef9a1d4d38aa class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14952
diff changeset
  7870
    "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
  7871
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  7872
    ^ self hasAllClassesLoaded:true
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  7873
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  7874
    "Created: / 25-10-2006 / 16:08:25 / cg"
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  7875
!
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  7876
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  7877
hasAllClassesLoaded
10205
33fadd7b4fd1 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10203
diff changeset
  7878
    "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
  7879
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  7880
    ^ self hasAllClassesLoaded:false
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  7881
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  7882
    "Modified: / 25-10-2006 / 16:08:11 / cg"
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  7883
!
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  7884
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  7885
hasAllClassesLoaded:checkIfFullyLoaded
10366
8990764f8911 #compiled_classNamesForPlatform: does not return classes names,
Stefan Vogel <sv@exept.de>
parents: 10350
diff changeset
  7886
    "check if all classes for this platform are present.
12421
67898c88eceb comment/format in: #hasAllClassesLoaded:
Claus Gittinger <cg@exept.de>
parents: 12416
diff changeset
  7887
     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
  7888
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  7889
    ^ (self
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7890
            hasClasses:(self classNamesForWhich:[:nm :attr | attr isEmptyOrNil or:[ attr includes:#autoload]])
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7891
            loaded:checkIfFullyLoaded)
10154
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  7892
    and:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7893
        self
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7894
            hasClasses:(self compiled_classNamesForPlatform:OperatingSystem platformName)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7895
            loaded:checkIfFullyLoaded ]
10154
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  7896
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  7897
    "Modified: / 07-11-2006 / 11:47:30 / cg"
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  7898
!
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  7899
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  7900
hasAllCompiledClassesFullyLoaded
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  7901
    "return true, if all compiled classes are present and loaded"
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  7902
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  7903
    ^ self hasAllCompiledClassesLoaded:true
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  7904
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  7905
    "Created: / 07-11-2006 / 11:48:02 / cg"
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  7906
!
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  7907
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  7908
hasAllCompiledClassesLoaded:checkIfFullyLoaded
10366
8990764f8911 #compiled_classNamesForPlatform: does not return classes names,
Stefan Vogel <sv@exept.de>
parents: 10350
diff changeset
  7909
    "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
  7910
     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
  7911
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  7912
    ^ (self
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7913
            hasClasses:(self classNamesForWhich:[:nm :attr | attr isEmptyOrNil])
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7914
            loaded:checkIfFullyLoaded)
10154
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  7915
    and:[
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  7916
       self
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7917
            hasClasses:(self compiled_classNamesForPlatform:OperatingSystem platformName)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7918
            loaded:checkIfFullyLoaded
10366
8990764f8911 #compiled_classNamesForPlatform: does not return classes names,
Stefan Vogel <sv@exept.de>
parents: 10350
diff changeset
  7919
    ]
9585
b26c46ba7c2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9584
diff changeset
  7920
!
b26c46ba7c2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9584
diff changeset
  7921
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  7922
hasAllExtensionsLoaded
10203
b210e7832fe1 Do not autoload when checking for extensions
Stefan Vogel <sv@exept.de>
parents: 10200
diff changeset
  7923
    "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
  7924
     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
  7925
18988
955c8abf6510 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 18684
diff changeset
  7926
    (self extensionMethodNames ? #()) pairWiseDo:[:className :selector |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7927
        |cls|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7928
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7929
        cls := Smalltalk loadedClassNamed:className.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7930
        cls isNil ifTrue:[
14021
11d015697e44 changed:8 methods
Stefan Vogel <sv@exept.de>
parents: 13968
diff changeset
  7931
            Verbose ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7932
                Transcript showCR:(self name,' missing extension class "',className,'".').
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7933
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7934
            ^ false
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7935
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7936
        "there is no possibility that we installed an extension method in an unloaded class"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7937
        (cls isLoaded not or:[(cls compiledMethodAt:selector) isNil]) ifTrue:[
14021
11d015697e44 changed:8 methods
Stefan Vogel <sv@exept.de>
parents: 13968
diff changeset
  7938
            Verbose ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7939
                Transcript showCR:(self name,' missing extension method "',className,'>>',selector,'".').
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7940
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7941
            ^ false
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7942
        ].
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  7943
    ].
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  7944
    ^ true.
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  7945
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  7946
    "Created: / 17-08-2006 / 00:50:01 / cg"
10140
154f52dd6821 isLoaded queries fixed
Claus Gittinger <cg@exept.de>
parents: 10132
diff changeset
  7947
    "Modified: / 25-10-2006 / 00:01:10 / cg"
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  7948
!
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  7949
10369
14baf6dc8ba6 No diag message about "unloaded classes" when loading packages
Stefan Vogel <sv@exept.de>
parents: 10368
diff changeset
  7950
hasClasses:classNames loaded:checkIfFullyLoaded
14baf6dc8ba6 No diag message about "unloaded classes" when loading packages
Stefan Vogel <sv@exept.de>
parents: 10368
diff changeset
  7951
    "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
  7952
     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
  7953
     are not considered"
14baf6dc8ba6 No diag message about "unloaded classes" when loading packages
Stefan Vogel <sv@exept.de>
parents: 10368
diff changeset
  7954
14baf6dc8ba6 No diag message about "unloaded classes" when loading packages
Stefan Vogel <sv@exept.de>
parents: 10368
diff changeset
  7955
    classNames do:[:eachClassName |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7956
        |cls|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7957
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7958
        cls := Smalltalk loadedClassNamed:eachClassName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7959
        cls isNil ifTrue:[
14021
11d015697e44 changed:8 methods
Stefan Vogel <sv@exept.de>
parents: 13968
diff changeset
  7960
            Verbose ifTrue:[
11d015697e44 changed:8 methods
Stefan Vogel <sv@exept.de>
parents: 13968
diff changeset
  7961
               (self name, ' [info]: missing class: ', eachClassName) infoPrintCR.
11d015697e44 changed:8 methods
Stefan Vogel <sv@exept.de>
parents: 13968
diff changeset
  7962
            ].
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7963
            ^ false
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7964
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7965
        (checkIfFullyLoaded and:[cls isLoaded not]) ifTrue:[
14021
11d015697e44 changed:8 methods
Stefan Vogel <sv@exept.de>
parents: 13968
diff changeset
  7966
            Verbose ifTrue:[
11d015697e44 changed:8 methods
Stefan Vogel <sv@exept.de>
parents: 13968
diff changeset
  7967
                (self name,' [info]: unloaded class: ', eachClassName) infoPrintCR.
11d015697e44 changed:8 methods
Stefan Vogel <sv@exept.de>
parents: 13968
diff changeset
  7968
            ].
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7969
            ^ false.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7970
        ].
10369
14baf6dc8ba6 No diag message about "unloaded classes" when loading packages
Stefan Vogel <sv@exept.de>
parents: 10368
diff changeset
  7971
    ].
14baf6dc8ba6 No diag message about "unloaded classes" when loading packages
Stefan Vogel <sv@exept.de>
parents: 10368
diff changeset
  7972
14baf6dc8ba6 No diag message about "unloaded classes" when loading packages
Stefan Vogel <sv@exept.de>
parents: 10368
diff changeset
  7973
    ^ true
10154
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  7974
!
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  7975
9906
9efd21c9b1b6 hasExtensions is a bad name (conflicts with the other query)
Claus Gittinger <cg@exept.de>
parents: 9904
diff changeset
  7976
hasExtensionMethods
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  7977
    ^ self extensionMethodNames notEmpty
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  7978
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  7979
    "Created: / 14-09-2006 / 14:19:35 / cg"
10005
407485f2a6e0 fix loading:
Stefan Vogel <sv@exept.de>
parents: 9998
diff changeset
  7980
!
407485f2a6e0 fix loading:
Stefan Vogel <sv@exept.de>
parents: 9998
diff changeset
  7981
12369
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7982
hasPostLoadAction
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7983
    "/ true if postLoadAction has been redefined
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7984
    ^ (self class whichClassIncludesSelector:#postLoadAction) theNonMetaclass isAbstract not
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7985
!
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7986
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7987
hasPostUnloadAction
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7988
    "/ true if postUnloadAction has been redefined
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7989
    ^ (self class whichClassIncludesSelector:#postUnloadAction) theNonMetaclass isAbstract not
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7990
!
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7991
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7992
hasPreLoadAction
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7993
    "/ true if preLoadAction has been redefined
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7994
    ^ (self class whichClassIncludesSelector:#preLoadAction) theNonMetaclass isAbstract not
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7995
!
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7996
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7997
hasPreUnloadAction
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7998
    "/ true if preUnloadAction has been redefined
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7999
    ^ (self class whichClassIncludesSelector:#preUnloadAction) theNonMetaclass isAbstract not
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  8000
!
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  8001
13609
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  8002
isAbstract
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  8003
    ^ self == ProjectDefinition
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  8004
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  8005
    "Modified (format): / 20-08-2011 / 22:47:46 / cg"
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  8006
!
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  8007
17461
209706784913 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17454
diff changeset
  8008
isAutoloaded:aClassOrClassName
209706784913 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17454
diff changeset
  8009
    |className|
209706784913 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17454
diff changeset
  8010
209706784913 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17454
diff changeset
  8011
    className := aClassOrClassName isBehavior 
19823
f4c03c9b8908 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 19731
diff changeset
  8012
                    ifTrue:[ aClassOrClassName theNonMetaclass name ]
17461
209706784913 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17454
diff changeset
  8013
                    ifFalse:[ aClassOrClassName ].
209706784913 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17454
diff changeset
  8014
    ^ self autoloaded_classNames includes:className
209706784913 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17454
diff changeset
  8015
209706784913 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17454
diff changeset
  8016
    "
209706784913 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17454
diff changeset
  8017
     'stx:goodies/soap/xe/tests' asPackageId projectDefinitionClass
209706784913 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17454
diff changeset
  8018
        isAutoloaded:#'SOAP::XeAllTests'
209706784913 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17454
diff changeset
  8019
    "
209706784913 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17454
diff changeset
  8020
!
209706784913 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17454
diff changeset
  8021
10140
154f52dd6821 isLoaded queries fixed
Claus Gittinger <cg@exept.de>
parents: 10132
diff changeset
  8022
isFullyLoaded
16160
f0b61d47a3d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16151
diff changeset
  8023
    "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
  8024
     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
  8025
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  8026
    ^ self hasAllCompiledClassesFullyLoaded
13167
658fc3b51af4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13166
diff changeset
  8027
    and:[self hasAllClassesLoaded and:[self hasAllExtensionsLoaded]]
10140
154f52dd6821 isLoaded queries fixed
Claus Gittinger <cg@exept.de>
parents: 10132
diff changeset
  8028
154f52dd6821 isLoaded queries fixed
Claus Gittinger <cg@exept.de>
parents: 10132
diff changeset
  8029
    "Created: / 24-10-2006 / 23:52:23 / cg"
13609
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  8030
    "Modified: / 20-08-2011 / 22:47:16 / cg"
12331
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  8031
!
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  8032
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  8033
projectType
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  8034
    ^ self subclassResponsibility
16812
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8035
!
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8036
16892
8c354250e8a2 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16854
diff changeset
  8037
supportedOnPlatform
8c354250e8a2 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16854
diff changeset
  8038
    "answer false, if this package is not suitable for
8c354250e8a2 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16854
diff changeset
  8039
     the current platform. The default here returns true.
8c354250e8a2 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16854
diff changeset
  8040
     Only to be redefined in packages which are definitely not valid
8c354250e8a2 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16854
diff changeset
  8041
     for the given platform. For example, the OLE package is only 
8c354250e8a2 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16854
diff changeset
  8042
     usable under windows"
8c354250e8a2 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16854
diff changeset
  8043
8c354250e8a2 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16854
diff changeset
  8044
    ^ true
8c354250e8a2 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16854
diff changeset
  8045
!
8c354250e8a2 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16854
diff changeset
  8046
16812
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8047
whoReferences:aPackageString
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8048
    "answer, which package references directly or indirectly a package defined by aPackageString"
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8049
22160
fbfa8355fc79 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21764
diff changeset
  8050
    |referrers|
fbfa8355fc79 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21764
diff changeset
  8051
fbfa8355fc79 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21764
diff changeset
  8052
    referrers := OrderedCollection new.
16812
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8053
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8054
    self allSubclassesDo:[:eachPackageDefinitionClass|
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8055
        (eachPackageDefinitionClass allPreRequisites includes:aPackageString) ifTrue:[
22160
fbfa8355fc79 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21764
diff changeset
  8056
            referrers add:eachPackageDefinitionClass.
16812
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8057
        ]
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8058
    ].
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8059
22160
fbfa8355fc79 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21764
diff changeset
  8060
    ^ referrers.
16812
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8061
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8062
    "
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8063
      self whoReferences:'stx:libview3'
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8064
      self whoReferences:'stx:libwidg3'
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8065
      self whoReferences:'stx:libbasic'
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8066
    "
22160
fbfa8355fc79 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21764
diff changeset
  8067
fbfa8355fc79 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21764
diff changeset
  8068
    "Modified (format): / 02-08-2017 / 18:38:27 / cg"
16812
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8069
!
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8070
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8071
whoReferencesSorted:aPackageString
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8072
    "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
  8073
     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
  8074
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8075
    |referers orderedTuples sortedPackages|
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8076
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8077
    referers := self whoReferences:aPackageString.
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8078
    orderedTuples := OrderedCollection new.
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8079
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8080
    referers do:[:eachProjectDefinition |
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8081
        |preRequisites|
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8082
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8083
        preRequisites := eachProjectDefinition effectivePreRequisites.
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8084
        preRequisites do:[:eachPrerequisitePackageID|
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8085
            |eachPrerequisitePackage|
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8086
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8087
            eachPrerequisitePackage := self definitionClassForPackage:eachPrerequisitePackageID.
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8088
            (referers includes:eachPrerequisitePackage) ifTrue:[
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8089
                orderedTuples add:(Array with:eachPrerequisitePackage with:eachProjectDefinition).
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8090
            ].
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8091
        ].
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8092
    ].
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8093
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8094
    (orderedTuples contains:[:el | el first = el second]) ifTrue:[
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8095
        self halt:'something seems to depend upon itself'
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8096
    ].
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8097
    sortedPackages := orderedTuples topologicalSortStable: true.
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8098
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8099
    ^ sortedPackages.
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8100
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8101
    "
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8102
      self whoReferencesSorted:'stx:libview3'
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8103
      self whoReferencesSorted:'stx:libwidg3'
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8104
      self whoReferencesSorted:'stx:libbasic'
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8105
    "
22160
fbfa8355fc79 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21764
diff changeset
  8106
fbfa8355fc79 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21764
diff changeset
  8107
    "Modified (comment): / 02-08-2017 / 18:38:03 / cg"
9585
b26c46ba7c2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9584
diff changeset
  8108
! !
b26c46ba7c2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9584
diff changeset
  8109
10774
c99a6da52fe4 html-doc privacy
Claus Gittinger <cg@exept.de>
parents: 10745
diff changeset
  8110
!ProjectDefinition class methodsFor:'queries-privacy'!
c99a6da52fe4 html-doc privacy
Claus Gittinger <cg@exept.de>
parents: 10745
diff changeset
  8111
c99a6da52fe4 html-doc privacy
Claus Gittinger <cg@exept.de>
parents: 10745
diff changeset
  8112
showClassDocumentationOf:aClass
12198
f3f15cc6a32e changed: #showClassDocumentationOf:
Claus Gittinger <cg@exept.de>
parents: 12192
diff changeset
  8113
    "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
  8114
     or hidden.
f3f15cc6a32e changed: #showClassDocumentationOf:
Claus Gittinger <cg@exept.de>
parents: 12192
diff changeset
  8115
     (used for expecco, to suppress documentation of workflow- and expecco classes
f3f15cc6a32e changed: #showClassDocumentationOf:
Claus Gittinger <cg@exept.de>
parents: 12192
diff changeset
  8116
     in the expecco-class browser)"
10774
c99a6da52fe4 html-doc privacy
Claus Gittinger <cg@exept.de>
parents: 10745
diff changeset
  8117
c99a6da52fe4 html-doc privacy
Claus Gittinger <cg@exept.de>
parents: 10745
diff changeset
  8118
    ^ true
c99a6da52fe4 html-doc privacy
Claus Gittinger <cg@exept.de>
parents: 10745
diff changeset
  8119
c99a6da52fe4 html-doc privacy
Claus Gittinger <cg@exept.de>
parents: 10745
diff changeset
  8120
    "Created: / 05-11-2007 / 16:44:16 / cg"
c99a6da52fe4 html-doc privacy
Claus Gittinger <cg@exept.de>
parents: 10745
diff changeset
  8121
! !
c99a6da52fe4 html-doc privacy
Claus Gittinger <cg@exept.de>
parents: 10745
diff changeset
  8122
9726
305dc3397c51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9714
diff changeset
  8123
!ProjectDefinition class methodsFor:'sanity checks'!
305dc3397c51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9714
diff changeset
  8124
305dc3397c51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9714
diff changeset
  8125
validateDescription
13808
0f696e30344a comment
Claus Gittinger <cg@exept.de>
parents: 13798
diff changeset
  8126
    "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
  8127
     called before checking in build support files.
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  8128
     Somewhat obsolete: use the ProjectChecker, which does more checks"
13808
0f696e30344a comment
Claus Gittinger <cg@exept.de>
parents: 13798
diff changeset
  8129
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  8130
    |emptyProjects nonProjects emptyOrNonProjects classesInImage
14510
5274ba4185d8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14361
diff changeset
  8131
     classesInDescription onlyInImage onlyInDescription missingPools myPackage|
9956
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  8132
15395
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  8133
    emptyProjects := Set withAll:self effectiveSubProjects.
9956
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  8134
    Smalltalk allClassesDo:[:cls |
13711
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  8135
        emptyProjects remove:(cls package) ifAbsent:[].
9956
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  8136
    ].
15395
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  8137
    nonProjects := self effectiveSubProjects select:[:p |
16257
5772bfdc494b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16256
diff changeset
  8138
                    (self definitionClassForPackage: p) isNil
13711
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  8139
                   ].
9956
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  8140
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  8141
    emptyOrNonProjects := Set withAll:emptyProjects.
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  8142
    emptyOrNonProjects addAll:nonProjects.
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  8143
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  8144
    emptyOrNonProjects notEmpty ifTrue:[
13711
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  8145
        (Dialog
21259
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  8146
            confirm:('The following subprojects are non-existent, empty or without description:\\    '
13711
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  8147
                    , ((emptyOrNonProjects
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  8148
                            asSortedCollection
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  8149
                                collect:[:p | p allBold])
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  8150
                                asStringWith:'\    ')
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  8151
                    , '\\Continue ?') withCRs
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  8152
            yesLabel:'OK' noLabel:'Cancel')
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  8153
        ifFalse:[
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  8154
            AbortSignal raise
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  8155
        ].
9956
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  8156
    ].
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  8157
14510
5274ba4185d8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14361
diff changeset
  8158
    myPackage := self package.
5274ba4185d8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14361
diff changeset
  8159
    classesInImage := Smalltalk allClasses select:[:cls | (cls package == myPackage) and:[cls isPrivate not]].
13728
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  8160
    "/ classesInDescription := self classes asIdentitySet.
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  8161
    classesInDescription := IdentitySet new.
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  8162
    ((self compiled_classNamesForPlatform:(OperatingSystem platformName))
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  8163
    , (self compiled_classNames_common)
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  8164
    , (self autoloaded_classNames)) do:[:nm |
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  8165
        |cls|
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  8166
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  8167
        cls := Smalltalk at:nm asSymbol.
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  8168
        cls isNil ifTrue:[
14834
d54330e59dcd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14817
diff changeset
  8169
            (self autoloaded_classNames includes:nm) ifTrue:[
d54330e59dcd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14817
diff changeset
  8170
                Transcript showCR:'missing autoloaded class: ',nm.
d54330e59dcd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14817
diff changeset
  8171
            ] ifFalse:[
23013
7974b3297570 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 22971
diff changeset
  8172
                self proceedableError:('missing class: ',nm).
14834
d54330e59dcd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14817
diff changeset
  8173
            ]
d54330e59dcd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14817
diff changeset
  8174
        ] ifFalse:[
d54330e59dcd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14817
diff changeset
  8175
            classesInDescription add:cls.
d54330e59dcd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14817
diff changeset
  8176
        ]
13728
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  8177
    ].
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  8178
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  8179
    missingPools := Set new.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  8180
    classesInDescription do:[:eachClass |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  8181
        eachClass sharedPoolNames do:[:eachPoolName |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  8182
            |pool|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  8183
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  8184
            pool := eachClass nameSpace classNamed:eachPoolName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  8185
            pool isNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  8186
                eachClass nameSpace ~~ Smalltalk ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  8187
                    pool := Smalltalk classNamed:eachPoolName.
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  8188
                ]
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  8189
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  8190
            pool isNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  8191
                Transcript showCR:'missing pool: ',eachPoolName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  8192
                missingPools add:eachPoolName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  8193
            ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  8194
                pool isSharedPool ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  8195
                    Transcript showCR:'not a shared pool: ',eachPoolName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  8196
                    missingPools add:eachPoolName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  8197
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  8198
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  8199
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  8200
    ].
14981
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  8201
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  8202
    missingPools notEmpty ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  8203
        (Dialog
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  8204
            confirm:('The following sharedpools are non-existent, or not pools:\\    '
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  8205
                    , ((missingPools
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  8206
                            asSortedCollection
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  8207
                                collect:[:p | p allBold])
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  8208
                                asStringWith:'\    ')
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  8209
                    , '\\Continue ?') withCRs
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  8210
            yesLabel:'OK' noLabel:'Cancel')
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  8211
        ifFalse:[
15905
1975e5cce9c9 AbortSignal -> AbortOperationRequest
Stefan Vogel <sv@exept.de>
parents: 15892
diff changeset
  8212
            AbortOperationRequest raise
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  8213
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  8214
    ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  8215
14981
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  8216
"/ also found by ProjectChecker...
13694
ff3118874df3 changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13692
diff changeset
  8217
    classesInImage ~= classesInDescription ifTrue:[
13711
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  8218
        onlyInImage := (classesInImage reject:[:cls | classesInDescription includes:cls]).
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  8219
        onlyInImage notEmpty ifTrue:[
13899
d769ad2935e6 changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13875
diff changeset
  8220
            Transcript show:self name; show:': only in image: '; showCR:onlyInImage
13711
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  8221
        ].
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  8222
        onlyInDescription := (classesInDescription reject:[:cls | classesInImage includes:cls]).
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  8223
        onlyInDescription notEmpty ifTrue:[
13899
d769ad2935e6 changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13875
diff changeset
  8224
            Transcript show:self name; show:': only in description: '; showCR:onlyInDescription
13711
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  8225
        ].
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  8226
        (Dialog confirm:'The set of classes in the image is different from the listed classes in the project definition.\\Proceed?' withCRs) ifFalse:[
15395
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  8227
            AbortOperationRequest raiseRequest
13711
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  8228
        ]
13694
ff3118874df3 changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13692
diff changeset
  8229
    ].
14981
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  8230
14045
2a6a76d7b7f6 changed:
Claus Gittinger <cg@exept.de>
parents: 14042
diff changeset
  8231
"/    self validateOrderOfClasses
13694
ff3118874df3 changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13692
diff changeset
  8232
ff3118874df3 changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13692
diff changeset
  8233
    "
15395
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  8234
     exept_expecco_application validateDescription
13694
ff3118874df3 changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13692
diff changeset
  8235
     squeak_vmMaker validateDescription
ff3118874df3 changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13692
diff changeset
  8236
    "
ff3118874df3 changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13692
diff changeset
  8237
14045
2a6a76d7b7f6 changed:
Claus Gittinger <cg@exept.de>
parents: 14042
diff changeset
  8238
    "Modified: / 06-03-2012 / 11:31:37 / cg"
21259
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  8239
    "Modified: / 17-01-2017 / 16:33:56 / stefan"
23013
7974b3297570 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 22971
diff changeset
  8240
    "Modified: / 24-05-2018 / 21:05:15 / Claus Gittinger"
14042
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8241
!
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8242
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8243
validateOrderOfClasses
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8244
    "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
  8245
     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
  8246
     and superclasses must be compiled before subclasses (for the header files).
2a6a76d7b7f6 changed:
Claus Gittinger <cg@exept.de>
parents: 14042
diff changeset
  8247
     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
  8248
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8249
    |classesInDescriptionInOrder classesInProject already|
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8250
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8251
    classesInDescriptionInOrder := OrderedCollection new.
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  8252
    classesInDescriptionInOrder :=
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  8253
        self compiled_classNames
14042
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8254
            collect:[:eachName |
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8255
                |cls|
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8256
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8257
                cls := Smalltalk at:eachName.
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8258
                self assert:cls notNil message:'missing class: ',eachName.
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8259
                cls
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8260
            ].
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8261
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8262
    classesInProject := classesInDescriptionInOrder asSet.
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8263
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8264
    already := Set new.
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8265
    classesInDescriptionInOrder do:[:eachClass |
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8266
        eachClass allSuperclassesDo:[:superclass |
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8267
            (classesInProject includes:superclass) ifTrue:[
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8268
                "/ if in the set, it must have been already listed
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  8269
                self
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  8270
                    assert:(already includes:superclass)
14045
2a6a76d7b7f6 changed:
Claus Gittinger <cg@exept.de>
parents: 14042
diff changeset
  8271
                    message:('superclass "%1" not compiled before "%2"'
2a6a76d7b7f6 changed:
Claus Gittinger <cg@exept.de>
parents: 14042
diff changeset
  8272
                                    bindWith:superclass name
2a6a76d7b7f6 changed:
Claus Gittinger <cg@exept.de>
parents: 14042
diff changeset
  8273
                                    with:eachClass name).
14042
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8274
            ].
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8275
        ].
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8276
        already add:eachClass.
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8277
    ].
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8278
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8279
    "
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8280
     stx_goodies_refactoryBrowser_lint validateOrderOfClasses
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8281
     squeak_vmMaker validateOrderOfClasses
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8282
    "
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8283
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8284
    "Created: / 05-03-2012 / 12:18:45 / cg"
9726
305dc3397c51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9714
diff changeset
  8285
! !
305dc3397c51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9714
diff changeset
  8286
9585
b26c46ba7c2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9584
diff changeset
  8287
!ProjectDefinition class methodsFor:'testing'!
b26c46ba7c2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9584
diff changeset
  8288
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  8289
isApplicationDefinition
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  8290
    ^ false
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  8291
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  8292
    "Created: / 23-08-2006 / 15:17:32 / cg"
9983
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  8293
    "Modified: / 20-09-2006 / 14:59:56 / cg"
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  8294
!
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  8295
12309
f51aaafd2131 added: #isConsoleApplication
Claus Gittinger <cg@exept.de>
parents: 12305
diff changeset
  8296
isConsoleApplication
23051
52c5ea88977c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23013
diff changeset
  8297
    "Used with WIN32 only (i.e. affects bc.mak).
52c5ea88977c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23013
diff changeset
  8298
     Return true, if this is a console application. 
52c5ea88977c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23013
diff changeset
  8299
     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
  8300
     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
  8301
     command line window."
52c5ea88977c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23013
diff changeset
  8302
12309
f51aaafd2131 added: #isConsoleApplication
Claus Gittinger <cg@exept.de>
parents: 12305
diff changeset
  8303
    ^ false
f51aaafd2131 added: #isConsoleApplication
Claus Gittinger <cg@exept.de>
parents: 12305
diff changeset
  8304
f51aaafd2131 added: #isConsoleApplication
Claus Gittinger <cg@exept.de>
parents: 12305
diff changeset
  8305
    "Created: / 20-09-2006 / 14:59:49 / cg"
23051
52c5ea88977c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23013
diff changeset
  8306
    "Modified (comment): / 06-06-2018 / 15:17:21 / Claus Gittinger"
12309
f51aaafd2131 added: #isConsoleApplication
Claus Gittinger <cg@exept.de>
parents: 12305
diff changeset
  8307
!
f51aaafd2131 added: #isConsoleApplication
Claus Gittinger <cg@exept.de>
parents: 12305
diff changeset
  8308
16682
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  8309
isFolderForProjectsDefinition
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  8310
    ^ false
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  8311
!
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  8312
9983
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  8313
isGUIApplication
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  8314
    ^ false
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  8315
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  8316
    "Created: / 20-09-2006 / 14:59:49 / cg"
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  8317
!
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  8318
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  8319
isLibraryDefinition
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  8320
    ^ false
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  8321
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  8322
    "Created: / 23-08-2006 / 15:17:46 / cg"
9983
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  8323
    "Modified: / 20-09-2006 / 15:00:00 / cg"
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  8324
!
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  8325
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  8326
isProjectDefinition
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  8327
    "concrete i.e. not abstract"
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  8328
14978
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  8329
    ^ self isAbstract not
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  8330
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  8331
    "Created: / 10-08-2006 / 16:24:02 / cg"
13285
bd6b2a49c8af comment
Claus Gittinger <cg@exept.de>
parents: 13251
diff changeset
  8332
    "Modified: / 08-02-2011 / 10:03:49 / cg"
9585
b26c46ba7c2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9584
diff changeset
  8333
! !
b26c46ba7c2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9584
diff changeset
  8334
13592
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8335
!ProjectDefinition::AbbrevEntry methodsFor:'accessing'!
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8336
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8337
category
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8338
    ^ category
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8339
!
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8340
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8341
className
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8342
    ^ className
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8343
!
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8344
13695
Claus Gittinger <cg@exept.de>
parents: 13694
diff changeset
  8345
className:classNameArg fileName:fileNameArg category:categoryArg numClassInstVars:numClassInstVarsArg
13592
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8346
    className := classNameArg.
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8347
    fileName := fileNameArg.
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8348
    category := categoryArg.
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8349
    numClassInstVars := numClassInstVarsArg.
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8350
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8351
    "Created: / 18-08-2011 / 14:18:30 / cg"
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8352
!
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8353
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8354
fileName
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8355
    ^ fileName
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8356
!
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8357
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8358
numClassInstVars
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8359
    ^ numClassInstVars
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8360
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8361
    "Created: / 18-08-2011 / 14:18:37 / cg"
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8362
! !
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8363
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8364
!ProjectDefinition::ApplicationDocumentTypeDescription class methodsFor:'documentation'!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8365
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8366
documentation
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8367
"
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8368
    for deployment, some systems can make use of additional information
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8369
    on which documents are handled by the application.
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8370
    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
  8371
    If the deployed app can/should handle this, redefine the
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8372
    applicatinDocumentTypeDescriptions / applicatinDocumentTypeDescriptionsOSX
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8373
    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
  8374
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8375
    [author:]
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8376
        cg
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8377
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8378
    For example:
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8379
        mimeType:  'application/x-expecco-testsuite
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8380
        extension: 'ets'
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8381
        typeName:  'expecco test suite'  
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8382
        iconFileWindows:  'expeccoSuite.ico'  
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8383
        iconFileOSX:      'expeccoSuite.icns'  
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8384
        roleOSX:          'Editor'  
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8385
"
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8386
! !
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8387
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8388
!ProjectDefinition::ApplicationDocumentTypeDescription methodsFor:'accessing'!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8389
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8390
extension
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8391
    "the extension of the document"
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8392
    
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8393
    ^ extension
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8394
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8395
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8396
extension:aString
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8397
    "the extension of the document"
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8398
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8399
    extension := aString.
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8400
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8401
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8402
iconFileLinux
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8403
    ^ iconFileLinux
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8404
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8405
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8406
iconFileLinux:aString
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8407
    iconFileLinux := aString.
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8408
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8409
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8410
iconFileOSX
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8411
    ^ iconFileOSX
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8412
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8413
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8414
iconFileOSX:aString
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8415
    iconFileOSX := aString.
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8416
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8417
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8418
iconFileWindows
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8419
    ^ iconFileWindows
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8420
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8421
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8422
iconFileWindows:aString
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8423
    iconFileWindows := aString.
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8424
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8425
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8426
mimeType
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8427
    ^ mimeType
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8428
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8429
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8430
mimeType:aString
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8431
    mimeType := aString.
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8432
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8433
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8434
roleOSX
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8435
    ^ roleOSX
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8436
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8437
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8438
roleOSX:aString
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8439
    roleOSX := aString.
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8440
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8441
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8442
typeName
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8443
    "something like 'foo Document';
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8444
     eg. 'expecco test suite', 'expecco log file', etc."
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8445
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8446
    ^ typeName
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8447
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8448
21562
1218cac5c5c5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21509
diff changeset
  8449
typeName:aString
1218cac5c5c5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21509
diff changeset
  8450
    "aString like 'foo Document';
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8451
     eg. 'expecco test suite', 'expecco log file', etc."
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8452
21562
1218cac5c5c5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21509
diff changeset
  8453
    typeName := aString.
1218cac5c5c5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21509
diff changeset
  8454
1218cac5c5c5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21509
diff changeset
  8455
    "Modified (comment): / 24-02-2017 / 09:37:26 / cg"
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8456
! !
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8457
9569
b0bf179c9bf5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9559
diff changeset
  8458
!ProjectDefinition class methodsFor:'documentation'!
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  8459
13610
ec7ea708ebd2 changed: #installAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13609
diff changeset
  8460
version
18477
02e08c7c3be0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 18428
diff changeset
  8461
    ^ '$Header$'
13610
ec7ea708ebd2 changed: #installAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13609
diff changeset
  8462
!
ec7ea708ebd2 changed: #installAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13609
diff changeset
  8463
12086
9db1452d0645 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12039
diff changeset
  8464
version_CVS
18477
02e08c7c3be0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 18428
diff changeset
  8465
    ^ '$Header$'
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  8466
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  8467
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  8468
version_SVN
15221
4d047c57a287 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15216
diff changeset
  8469
    ^ '$ Id: ProjectDefinition.st 10645 2011-06-09 15:28:45Z vranyj1  $'
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  8470
! !
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  8471
14642
415f684f8808 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14586
diff changeset
  8472
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  8473
ProjectDefinition initialize!