common/SCMAbstractFileoutLikeTask.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Tue, 24 Sep 2013 12:44:53 +0100
changeset 348 a9647072025f
parent 335 7e19ab19148b
child 353 456532e0478c
permissions -rw-r--r--
More support for Java extension methods. This should fix issue #23, but needs test.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
     1
"
335
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 302
diff changeset
     2
stx:libscm - a new source code management library for Smalltalk/X
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 302
diff changeset
     3
Copyright (C) 2012-2013 Jan Vrany
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 302
diff changeset
     4
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 302
diff changeset
     5
This library is free software; you can redistribute it and/or
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 302
diff changeset
     6
modify it under the terms of the GNU Lesser General Public
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 302
diff changeset
     7
License as published by the Free Software Foundation; either
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 302
diff changeset
     8
version 2.1 of the License. 
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
     9
335
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 302
diff changeset
    10
This library is distributed in the hope that it will be useful,
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 302
diff changeset
    11
but WITHOUT ANY WARRANTY; without even the implied warranty of
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 302
diff changeset
    12
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 302
diff changeset
    13
Lesser General Public License for more details.
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    14
335
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 302
diff changeset
    15
You should have received a copy of the GNU Lesser General Public
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 302
diff changeset
    16
License along with this library; if not, write to the Free Software
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 302
diff changeset
    17
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    18
"
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    19
"{ Package: 'stx:libscm/common' }"
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    20
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    21
SCMAbstractTask subclass:#SCMAbstractFileoutLikeTask
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    22
	instanceVariableNames:'suppressClasses suppressExtensions suppresBuildSupportFiles
348
a9647072025f More support for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
    23
		packageClassesChanged packageExtensionsChanged extensionMethods
a9647072025f More support for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
    24
		fileout2codeMap'
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    25
	classVariableNames:''
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    26
	poolDictionaries:''
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    27
	category:'SCM-Common-StX-Tasks'
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    28
!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    29
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    30
!SCMAbstractFileoutLikeTask class methodsFor:'documentation'!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    31
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    32
copyright
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    33
"
335
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 302
diff changeset
    34
stx:libscm - a new source code management library for Smalltalk/X
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 302
diff changeset
    35
Copyright (C) 2012-2013 Jan Vrany
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    36
335
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 302
diff changeset
    37
This library is free software; you can redistribute it and/or
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 302
diff changeset
    38
modify it under the terms of the GNU Lesser General Public
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 302
diff changeset
    39
License as published by the Free Software Foundation; either
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 302
diff changeset
    40
version 2.1 of the License. 
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    41
335
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 302
diff changeset
    42
This library is distributed in the hope that it will be useful,
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 302
diff changeset
    43
but WITHOUT ANY WARRANTY; without even the implied warranty of
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 302
diff changeset
    44
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 302
diff changeset
    45
Lesser General Public License for more details.
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    46
335
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 302
diff changeset
    47
You should have received a copy of the GNU Lesser General Public
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 302
diff changeset
    48
License along with this library; if not, write to the Free Software
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 302
diff changeset
    49
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    50
"
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    51
! !
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    52
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    53
!SCMAbstractFileoutLikeTask methodsFor:'accessing'!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    54
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    55
extensionMethods
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    56
    ^ extensionMethods
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    57
!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    58
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    59
extensionMethods:aCollection"of Methods"
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    60
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    61
    extensionMethods := aCollection.
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    62
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    63
    "Modified: / 14-05-2009 / 13:38:15 / Jan Vrany <vranyj1@fel.cvut.cz>"
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    64
!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    65
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    66
filesToGenerate
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    67
    ^ self packageDefinition fileNamesToGenerate keys
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    68
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    69
    "
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    70
        SVN::CommitTask new
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    71
            package: #stx:libsvn;
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    72
            buildSupportFiles"
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    73
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    74
    "Created: / 27-11-2009 / 11:29:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    75
    "Modified: / 17-11-2010 / 14:08:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    76
!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    77
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    78
packageDefinition
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    79
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    80
    ^self package definition
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    81
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    82
    "Created: / 27-11-2009 / 11:27:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    83
!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    84
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    85
suppresBuildSupportFiles
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    86
    ^ suppresBuildSupportFiles
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    87
!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    88
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    89
suppresBuildSupportFiles:something
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    90
    suppresBuildSupportFiles := something.
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    91
!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    92
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    93
suppressClasses
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    94
    ^ suppressClasses
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    95
!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    96
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    97
suppressClasses:aBoolean
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    98
    suppressClasses := aBoolean.
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    99
!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   100
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   101
suppressExtensions
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   102
    ^ suppressExtensions
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   103
!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   104
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   105
suppressExtensions:aBoolean
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   106
    suppressExtensions := aBoolean.
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   107
! !
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   108
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   109
!SCMAbstractFileoutLikeTask methodsFor:'executing - private'!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   110
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   111
doAddNewContainers
53
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   112
    | wcroot containers |
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   113
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   114
    ActivityNotification notify:'Adding new containers'.
53
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   115
    containers := 
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   116
        self isSelectiveFileoutTask 
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   117
            ifTrue:[#()] 
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   118
            ifFalse:[self containersToFileOut].
117
3014c22e2eab Refactoring (part 1): SCMPackageModel>>workingCopy renamed to temporaryWorkingCopy
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 114
diff changeset
   119
    wcroot := self temporaryWorkingCopyRoot.
53
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   120
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   121
    containers do:[:nm|
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   122
        | entry |
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   123
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   124
        entry := wcroot / nm.
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   125
        entry track.
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   126
    ]
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   127
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   128
    "Created: / 11-04-2008 / 10:58:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   129
    "Modified: / 19-08-2009 / 14:00:26 / Jan Vrany <vranyj1@fel.cvut.cz>"
53
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   130
    "Modified: / 15-11-2012 / 00:14:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   131
!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   132
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   133
doCompileCopyrightMethods
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   134
    | klasses source |
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   135
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   136
    (self packageDefinition class includesSelector: #copyright) ifFalse:[^self].
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   137
    ActivityNotification notify:'Compiling #copyright methods...'.
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   138
    klasses := self classesToFileOut asArray.
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   139
    source := (self packageDefinition class compiledMethodAt: #copyright) source.
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   140
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   141
    klasses 
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   142
        withIndexDo:[:cls :index | 
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   143
            |metaCls|
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   144
            metaCls := cls theMetaclass.
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   145
            (((metaCls includesSelector:#copyright) not) and:[metaCls programmingLanguage isSmalltalk])
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   146
                ifTrue:[
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   147
                    metaCls compile:source classified:'documentation'.
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   148
                    (metaCls compiledMethodAt:#copyright) 
131
8986734fe8e2 Bugfix in SCMAbstractFileoutLikeTask>>doCompileCopyrightMethods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 122
diff changeset
   149
                        setPackage:self package name asSymbol
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   150
                    ].
302
e078bdcef149 Fixes for Smalltalk/X 6.2.2 (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 271
diff changeset
   151
            ProgressNotification newException
e078bdcef149 Fixes for Smalltalk/X 6.2.2 (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 271
diff changeset
   152
                messageText: ('Compiling %1 (%2)' bindWith:#copyright
e078bdcef149 Fixes for Smalltalk/X 6.2.2 (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 271
diff changeset
   153
                                                      with:cls nameWithoutPrefix);
e078bdcef149 Fixes for Smalltalk/X 6.2.2 (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 271
diff changeset
   154
                parameter: (100 / klasses size) * index;
e078bdcef149 Fixes for Smalltalk/X 6.2.2 (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 271
diff changeset
   155
                raiseRequest.
e078bdcef149 Fixes for Smalltalk/X 6.2.2 (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 271
diff changeset
   156
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   157
        ]
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   158
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   159
    "Modified: / 16-08-2009 / 12:59:50 / Jan Vrany <vranyj1@fel.cvut.cz>"
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   160
    "Created: / 08-04-2010 / 14:31:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
302
e078bdcef149 Fixes for Smalltalk/X 6.2.2 (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 271
diff changeset
   161
    "Modified: / 30-06-2013 / 12:44:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   162
!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   163
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   164
doCompileVersionMethods
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   165
    |klasses versionMethodName|
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   166
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   167
    versionMethodName := self package manager nameOfVersionMethodInClasses.
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   168
    ActivityNotification notify:'Compiling #version methods...'.
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   169
    klasses := self classesToFileOut asArray.
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   170
    klasses 
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   171
        withIndexDo:[:cls :index | 
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   172
            |metaCls|
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   173
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   174
            metaCls := cls theMetaclass.
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   175
            ((metaCls includesSelector:versionMethodName) not 
53
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   176
                "JV@2012-11-14: libsvn did this check, however, it is not valid for
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   177
                 SCMs that does not expand keywords. I disable it, but kept as comment
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   178
                 as I do not remember why it was good for..."
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   179
                "or:[ ((cls perform:versionMethodName asSymbol) startsWith:'$Id') not ]") 
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   180
                    ifTrue:[
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   181
                        metaCls compile:(metaCls 
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   182
                                    versionMethodTemplateForSourceCodeManager:self package manager)
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   183
                            classified:'documentation'.
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   184
                        (metaCls compiledMethodAt:versionMethodName) 
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   185
                            setPackage:self package name asSymbol
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   186
                    ].
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   187
            self package manager utilities ensureCorrectVersionMethodsInClass: cls usingManager: self package manager.
302
e078bdcef149 Fixes for Smalltalk/X 6.2.2 (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 271
diff changeset
   188
            ^ ProgressNotification newException
e078bdcef149 Fixes for Smalltalk/X 6.2.2 (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 271
diff changeset
   189
                messageText: ('Compiling %1 (%2)' bindWith:versionMethodName
e078bdcef149 Fixes for Smalltalk/X 6.2.2 (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 271
diff changeset
   190
                                                      with:cls nameWithoutPrefix);
e078bdcef149 Fixes for Smalltalk/X 6.2.2 (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 271
diff changeset
   191
                parameter: (100 / klasses size) * index;
e078bdcef149 Fixes for Smalltalk/X 6.2.2 (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 271
diff changeset
   192
                raiseRequest     
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   193
        ].
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   194
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   195
    self extensionMethodsToFileOut notEmpty ifTrue:[
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   196
        | def |
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   197
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   198
        "TODO: Not programming language aware..."
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   199
        ((def := self packageDefinition) class includesSelector: self package manager nameOfVersionMethodForExtensions) ifFalse:[
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   200
            def class 
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   201
                compile:
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   202
                    (self package manager versionMethodTemplateForSmalltalkFor:self package manager nameOfVersionMethodForExtensions)
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   203
                classified: #documentation.
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   204
            (def class compiledMethodAt:self package manager nameOfVersionMethodForExtensions) 
70
3faeae24a513 fix in SCMAbstractFileoutLikeTask>>doCompileVersionMethods
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 53
diff changeset
   205
                setPackage:self package name asSymbol
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   206
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   207
        ]
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   208
    ]
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   209
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   210
    "Created: / 28-05-2008 / 07:43:43 / Jan Vrany <vranyj1@fel.cvut.cz>"
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   211
    "Modified: / 16-08-2009 / 12:59:50 / Jan Vrany <vranyj1@fel.cvut.cz>"
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   212
    "Modified: / 07-07-2011 / 20:15:21 / jv"
302
e078bdcef149 Fixes for Smalltalk/X 6.2.2 (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 271
diff changeset
   213
    "Modified: / 30-06-2013 / 12:43:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   214
!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   215
122
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   216
doFileOut
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   217
    "Fileouts everything to the working copy"
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   218
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   219
    self
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   220
        doUpdateBuildSupportFiles;
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   221
        doRenameContainers;
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   222
        doFileOutPackageClasses;
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   223
        doFileOutPackageExtensions;
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   224
        doAddNewContainers;
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   225
        doRemoveOldContainers.
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   226
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   227
    "Created: / 10-05-2012 / 17:05:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   228
    "Modified: / 21-11-2012 / 00:43:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   229
!
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   230
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   231
doFileOutAll
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   232
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   233
    self
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   234
        doUpdateCode;
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   235
        doFileOut.
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   236
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   237
    "Created: / 17-08-2009 / 18:28:18 / Jan Vrany <vranyj1@fel.cvut.cz>"
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   238
    "Modified: / 10-05-2012 / 17:06:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   239
!
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   240
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   241
doFileOutPackageClasses
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   242
    |klasses|
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   243
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   244
    suppressClasses == true ifTrue:[^self].
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   245
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   246
    ActivityNotification notify:'Filing out package classes'.
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   247
    klasses := self classesToFileOut asArray.
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   248
    klasses 
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   249
        withIndexDo:[:cls :index | 
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   250
            |clsStream|
302
e078bdcef149 Fixes for Smalltalk/X 6.2.2 (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 271
diff changeset
   251
            ProgressNotification newException
e078bdcef149 Fixes for Smalltalk/X 6.2.2 (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 271
diff changeset
   252
                messageText: 'Filing out ' , cls nameWithoutPrefix;
e078bdcef149 Fixes for Smalltalk/X 6.2.2 (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 271
diff changeset
   253
                parameter: (100 / klasses size) * index;
e078bdcef149 Fixes for Smalltalk/X 6.2.2 (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 271
diff changeset
   254
                raiseRequest.
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   255
302
e078bdcef149 Fixes for Smalltalk/X 6.2.2 (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 271
diff changeset
   256
            (self shouldFileOutClass:cls) ifTrue:[self package fileOutClass: cls]
e078bdcef149 Fixes for Smalltalk/X 6.2.2 (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 271
diff changeset
   257
        ].
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   258
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   259
    "Created: / 11-04-2008 / 10:58:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   260
    "Modified: / 19-08-2009 / 13:44:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
302
e078bdcef149 Fixes for Smalltalk/X 6.2.2 (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 271
diff changeset
   261
    "Modified: / 30-06-2013 / 00:16:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   262
!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   263
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   264
doFileOutPackageExtensions
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   265
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   266
    suppressExtensions == true ifTrue:[^self].
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   267
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   268
    self extensionMethodsToFileOut isEmpty ifTrue:[^self].
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   269
    self package fileOutExtensions: self extensionMethodsToFileOut
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   270
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   271
    "Modified: / 07-04-2008 / 08:37:25 / janfrog"
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   272
    "Created: / 11-04-2008 / 10:58:36 / Jan Vrany <vranyj1@fel.cvut.cz>"
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   273
    "Modified: / 14-05-2009 / 13:37:40 / Jan Vrany <vranyj1@fel.cvut.cz>"
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   274
    "Modified: / 07-10-2012 / 10:56:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   275
!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   276
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   277
doInitStateVariables
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   278
    packageClassesChanged := self package classesHasChanged.
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   279
    packageExtensionsChanged := self package extensionsHasChanged.
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   280
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   281
    "Created: / 17-06-2009 / 10:17:04 / Jan Vrany <vranyj1@fel.cvut.cz>"
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   282
    "Modified: / 13-08-2009 / 10:18:37 / Jan Vrany <vranyj1@fel.cvut.cz>"
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   283
    "Modified: / 06-10-2012 / 23:28:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   284
!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   285
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   286
doRemoveOldContainers
53
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   287
    | wcroot containers containersToKeep containersToDelete |
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   288
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   289
    self isSelectiveFileoutTask ifTrue:[
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   290
        ^ self
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   291
    ].
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   292
    ActivityNotification notify:'Removing old containers'.
117
3014c22e2eab Refactoring (part 1): SCMPackageModel>>workingCopy renamed to temporaryWorkingCopy
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 114
diff changeset
   293
    wcroot := package temporaryWorkingCopyRoot.
53
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   294
    containers := self package containers.
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   295
    containersToKeep := self package containersToKeep.
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   296
    containersToDelete := containers \ containersToKeep.
53
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   297
    containersToDelete do:[:nm|
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   298
        | entry |
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   299
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   300
        entry := wcroot / nm.
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   301
        entry remove
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   302
    ]
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   303
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   304
    "Created: / 11-04-2008 / 11:00:27 / Jan Vrany <vranyj1@fel.cvut.cz>"
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   305
    "Modified: / 19-08-2009 / 15:03:51 / Jan Vrany <vranyj1@fel.cvut.cz>"
53
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   306
    "Modified: / 15-11-2012 / 00:54:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   307
!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   308
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   309
doRenameContainerForClassNamed: new using: renames language: lang
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   310
53
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   311
    | wcroot old oldC oldE newC newE |
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   312
    old := renames at: new.
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   313
    (renames includesKey: old) ifTrue:[
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   314
        self doRenameContainerForClassNamed: old using: renames language: lang.
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   315
    ].
117
3014c22e2eab Refactoring (part 1): SCMPackageModel>>workingCopy renamed to temporaryWorkingCopy
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 114
diff changeset
   316
    wcroot := package temporaryWorkingCopyRoot.
81
eeb86ad71bc3 Fixed all references to libsvn classes. Added SCMCompatModeQuery.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 70
diff changeset
   317
    oldC := self package containerNameForClassNamed: old language: lang .
eeb86ad71bc3 Fixed all references to libsvn classes. Added SCMCompatModeQuery.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 70
diff changeset
   318
    newC := self package containerNameForClassNamed: new language: lang .
89
874f18be0cbd Fixed renaming of class containers.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 81
diff changeset
   319
    (oldE := wcroot / oldC) exists ifTrue:[
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   320
        packageClassesChanged := true.
53
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   321
        newE := wcroot / newC.
89
874f18be0cbd Fixed renaming of class containers.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 81
diff changeset
   322
        oldE moveTo: newE.
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   323
    ].
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   324
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   325
    "Created: / 11-04-2008 / 11:00:27 / Jan Vrany <vranyj1@fel.cvut.cz>"
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   326
    "Modified: / 19-08-2009 / 15:03:51 / Jan Vrany <vranyj1@fel.cvut.cz>"
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   327
    "Created: / 06-08-2011 / 21:33:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
89
874f18be0cbd Fixed renaming of class containers.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 81
diff changeset
   328
    "Modified: / 21-11-2012 / 00:43:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   329
!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   330
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   331
doRenameContainers
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   332
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   333
    | renames |
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   334
    renames := Dictionary new.
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   335
    ChangeSet current do:
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   336
                [:chg|
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   337
                chg isClassRenameChange ifTrue:[
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   338
                    renames at: chg className put: chg oldName.
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   339
                ]].
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   340
    self classesToFileOut do:[:cls|
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   341
        (renames includesKey: cls name) ifTrue:[
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   342
            self doRenameContainerForClassNamed: cls name using: renames language: cls programmingLanguage.
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   343
        ]        
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   344
    ]
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   345
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   346
    "Created: / 11-04-2008 / 11:00:27 / Jan Vrany <vranyj1@fel.cvut.cz>"
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   347
    "Modified: / 19-08-2009 / 15:03:51 / Jan Vrany <vranyj1@fel.cvut.cz>"
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   348
    "Created: / 06-08-2011 / 21:13:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   349
!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   350
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   351
doUpdateBuildSupportFiles
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   352
    |pkgDef|
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   353
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   354
    suppresBuildSupportFiles == true ifTrue:[
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   355
        ^self.
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   356
    ].
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   357
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   358
    pkgDef := self package definition.
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   359
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   360
    (self isSelectiveFileoutTask and:[packageClassesChanged not and:[(classes includes: pkgDef) not]]) ifTrue:[
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   361
        ^self.
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   362
    ].
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   363
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   364
    ActivityNotification notify:'Updating build files'.
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   365
    "First, generate files into a temporary files - so originals
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   366
     are not destroyed when something goes wrong."
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   367
    self filesToGenerate do:[:supportFileName | 
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   368
        | supportFile |
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   369
117
3014c22e2eab Refactoring (part 1): SCMPackageModel>>workingCopy renamed to temporaryWorkingCopy
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 114
diff changeset
   370
        supportFile := self temporaryWorkingCopyRoot / (supportFileName , '.tmp').
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   371
        (packageClassesChanged or:[ supportFile exists not ]) ifTrue:[
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   372
            ActivityNotification notify:'Updating ' , supportFileName.
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   373
            supportFile directory exists ifFalse: [supportFile directory makeDirectory].
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   374
            supportFile writingFileDo:[:s|
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   375
                    s nextPutAll:(self for: pkgDef generateFile:supportFileName)
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   376
            ]
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   377
        ]
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   378
    ].
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   379
    "Now, copy them over the old files"
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   380
    self filesToGenerate do:[:supportFileName |
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   381
        | supportFile supportFileTmp |
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   382
117
3014c22e2eab Refactoring (part 1): SCMPackageModel>>workingCopy renamed to temporaryWorkingCopy
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 114
diff changeset
   383
        supportFile := package temporaryWorkingCopyRoot / supportFileName.
3014c22e2eab Refactoring (part 1): SCMPackageModel>>workingCopy renamed to temporaryWorkingCopy
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 114
diff changeset
   384
        supportFileTmp := package temporaryWorkingCopyRoot / (supportFileName , '.tmp').
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   385
53
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   386
        supportFileTmp moveTo: supportFile.
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   387
        supportFile track.
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   388
    ].
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   389
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   390
    "Created: / 20-06-2009 / 16:01:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   391
    "Modified: / 21-06-2009 / 15:18:17 / Jan Vrany <vranyj1@fel.cvut.cz>"
171
771ae4f01925 Changes to support standalone commit (without package model).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 131
diff changeset
   392
    "Modified: / 12-01-2013 / 13:54:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   393
!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   394
122
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   395
doUpdateCode
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   396
    "Updates project definitions and compiles version/copyright methods"
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   397
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   398
    self
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   399
        doInitStateVariables;
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   400
        doCompileVersionMethods;
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   401
        doCompileCopyrightMethods;
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   402
        doUpdateProjectDefinition.
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   403
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   404
    "Created: / 10-05-2012 / 17:04:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   405
!
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   406
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   407
doUpdateProjectDefinition
271
b0f2a22871b6 Care for class removal and superclass/pool change.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 268
diff changeset
   408
    | prjClass classesSpec classNamesAndAttributesMap |
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   409
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   410
    (packageClassesChanged | packageExtensionsChanged) ifFalse:[
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   411
        ^ self
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   412
    ].
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   413
    ActivityNotification notify:'Updating project definition'.
268
ceb9b128eeba Fix in SCMAbstractFileoutLikeTask>>#doUpdateProjectDefinition.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 184
diff changeset
   414
    prjClass := ProjectDefinition definitionClassForPackage:self package name createIfAbsent:true.
271
b0f2a22871b6 Care for class removal and superclass/pool change.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 268
diff changeset
   415
b0f2a22871b6 Care for class removal and superclass/pool change.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 268
diff changeset
   416
    "/Update classlist beforehand - to care about order and removals...
b0f2a22871b6 Care for class removal and superclass/pool change.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 268
diff changeset
   417
    classNamesAndAttributesMap := Dictionary new.
b0f2a22871b6 Care for class removal and superclass/pool change.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 268
diff changeset
   418
    prjClass classNamesAndAttributes do:[:nameOrPair |
b0f2a22871b6 Care for class removal and superclass/pool change.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 268
diff changeset
   419
        nameOrPair isArray 
b0f2a22871b6 Care for class removal and superclass/pool change.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 268
diff changeset
   420
            ifTrue:[classNamesAndAttributesMap at: nameOrPair first put: nameOrPair]
b0f2a22871b6 Care for class removal and superclass/pool change.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 268
diff changeset
   421
            ifFalse:[classNamesAndAttributesMap at: nameOrPair put: (Array with: nameOrPair)]
b0f2a22871b6 Care for class removal and superclass/pool change.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 268
diff changeset
   422
    ].
b0f2a22871b6 Care for class removal and superclass/pool change.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 268
diff changeset
   423
    classesSpec := prjClass searchForClasses collect:[:cls|
b0f2a22871b6 Care for class removal and superclass/pool change.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 268
diff changeset
   424
        classNamesAndAttributesMap at: cls name ifAbsent:[Array with: cls name]
b0f2a22871b6 Care for class removal and superclass/pool change.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 268
diff changeset
   425
    ].
b0f2a22871b6 Care for class removal and superclass/pool change.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 268
diff changeset
   426
    prjClass classNamesAndAttributes:classesSpec usingCompiler:nil.
b0f2a22871b6 Care for class removal and superclass/pool change.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 268
diff changeset
   427
b0f2a22871b6 Care for class removal and superclass/pool change.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 268
diff changeset
   428
b0f2a22871b6 Care for class removal and superclass/pool change.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 268
diff changeset
   429
    "/Now do standard update
b0f2a22871b6 Care for class removal and superclass/pool change.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 268
diff changeset
   430
    Class packageQuerySignal answer:prjClass package do:[
b0f2a22871b6 Care for class removal and superclass/pool change.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 268
diff changeset
   431
        prjClass theNonMetaclass 
b0f2a22871b6 Care for class removal and superclass/pool change.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 268
diff changeset
   432
            forEachContentsMethodsCodeToCompileDo:[:code :category |
b0f2a22871b6 Care for class removal and superclass/pool change.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 268
diff changeset
   433
                (code startsWith: 'excludedFromPreRequisites')
b0f2a22871b6 Care for class removal and superclass/pool change.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 268
diff changeset
   434
                    ifFalse:[prjClass theMetaclass compile:code classified:category]
b0f2a22871b6 Care for class removal and superclass/pool change.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 268
diff changeset
   435
            ]
b0f2a22871b6 Care for class removal and superclass/pool change.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 268
diff changeset
   436
            "/ignoreOldEntries: false
b0f2a22871b6 Care for class removal and superclass/pool change.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 268
diff changeset
   437
            ignoreOldDefinition: false
b0f2a22871b6 Care for class removal and superclass/pool change.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 268
diff changeset
   438
    ]
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   439
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   440
    "Created: / 11-04-2008 / 11:01:06 / Jan Vrany <vranyj1@fel.cvut.cz>"
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   441
    "Modified: / 13-08-2009 / 09:13:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
271
b0f2a22871b6 Care for class removal and superclass/pool change.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 268
diff changeset
   442
    "Modified: / 19-03-2013 / 10:35:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   443
! !
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   444
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   445
!SCMAbstractFileoutLikeTask methodsFor:'private'!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   446
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   447
classesToFileOut
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   448
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   449
    suppressClasses == true ifTrue:[^#()].
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   450
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   451
    ^ self package classesFiltered:
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   452
            [:class |
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   453
            class isLoaded and: [ classes isNil or: [ classes includes: class ] ] ]
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   454
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   455
    "Created: / 23-03-2009 / 12:08:24 / Jan Vrany <vranyj1@fel.cvut.cz>"
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   456
    "Modified: / 11-06-2009 / 18:17:38 / Jan Vrany <vranyj1@fel.cvut.cz>"
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   457
    "Modified: / 06-10-2012 / 23:28:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   458
!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   459
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   460
containersToFileOut
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   461
    | containers extensions |
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   462
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   463
    containers := self classesToFileOut
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   464
                collect: [:class | package containerNameForClass: class ].
348
a9647072025f More support for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   465
    (extensions := self extensionMethodsToFileOut) notEmpty ifTrue:[
a9647072025f More support for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   466
        | languages extensionsNonJava extensionsJava |
a9647072025f More support for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   467
a9647072025f More support for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   468
        extensionsNonJava := extensions reject:[:m | m mclass programmingLanguage isJava].
a9647072025f More support for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   469
        extensionsJava := extensions select:[:m | m mclass programmingLanguage isJava].
a9647072025f More support for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   470
        languages :=  (extensionsNonJava collect:[:each|each programmingLanguage]) asSet.
a9647072025f More support for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   471
        languages do: [:lang| containers add: (package containerNameForExtensions: lang)].
a9647072025f More support for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   472
        extensionsJava do:[:m |
a9647072025f More support for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   473
            | container |
a9647072025f More support for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   474
a9647072025f More support for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   475
            container := package containerNameForExtensions: m programmingLanguage javaClass: m mclass.
a9647072025f More support for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   476
            (containers includes: container) ifFalse:[
a9647072025f More support for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   477
                 containers add: container 
a9647072025f More support for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   478
            ].
a9647072025f More support for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   479
        ].
a9647072025f More support for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   480
    ].
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   481
    ^ containers
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   482
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   483
    "Created: / 14-05-2009 / 11:35:05 / Jan Vrany <vranyj1@fel.cvut.cz>"
348
a9647072025f More support for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   484
    "Modified: / 24-09-2013 / 12:32:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   485
!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   486
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   487
extensionMethodsToFileOut
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   488
    ^ self package extensionsFiltered:
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   489
            [:mth |
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   490
            extensionMethods isNil or: [ extensionMethods includes: mth ] ]
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   491
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   492
    "Created: / 14-05-2009 / 11:32:01 / Jan Vrany <vranyj1@fel.cvut.cz>"
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   493
    "Modified: / 06-10-2012 / 23:28:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   494
!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   495
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   496
for: def generateFile: file
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   497
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   498
    | contents savedClassFilenames |
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   499
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   500
        
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   501
    file ~= 'abbrev.stc' ifTrue:[^def generateFile: file].
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   502
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   503
    "Yet another kludge to trick Smalltalk>>fileNameForClass:, sigh"
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   504
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   505
    savedClassFilenames := Dictionary new.
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   506
    (def searchForClasses reject:[:e|e owningClass notNil]) do:
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   507
        [:cls|
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   508
        savedClassFilenames 
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   509
            at: cls
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   510
            put: cls getClassFilename.
81
eeb86ad71bc3 Fixed all references to libsvn classes. Added SCMCompatModeQuery.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 70
diff changeset
   511
        cls setClassFilename: (self package containerNameForClass: cls)].
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   512
    contents := def generateFile: file.
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   513
    savedClassFilenames keysAndValuesDo:
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   514
        [:cls :classFileName|
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   515
        cls setClassFilename: classFileName].
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   516
    ^contents
81
eeb86ad71bc3 Fixed all references to libsvn classes. Added SCMCompatModeQuery.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 70
diff changeset
   517
eeb86ad71bc3 Fixed all references to libsvn classes. Added SCMCompatModeQuery.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 70
diff changeset
   518
    "Modified: / 19-11-2012 / 23:01:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   519
!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   520
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   521
shouldFileOutClass: class
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   522
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   523
    "Do not fileout autoloaded classes,
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   524
    they are untouched"
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   525
    class isLoaded ifFalse:[^false].
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   526
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   527
    class theNonMetaclass
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   528
        methodsDo:[:mth|(self shouldFileOutMethod: mth) ifTrue:[^true]].
184
e31e5bc69918 Bugfix in SCMAbstractFileoutLikeTask>>#shouldFileOutClass: care about removed methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 171
diff changeset
   529
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   530
    class theMetaclass
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   531
        methodsDo:[:mth|(self shouldFileOutMethod: mth) ifTrue:[^true]].
184
e31e5bc69918 Bugfix in SCMAbstractFileoutLikeTask>>#shouldFileOutClass: care about removed methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 171
diff changeset
   532
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   533
    class privateClasses 
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   534
        do:[:cls|(self shouldFileOutClass: cls) ifTrue:[^true]].
184
e31e5bc69918 Bugfix in SCMAbstractFileoutLikeTask>>#shouldFileOutClass: care about removed methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 171
diff changeset
   535
e31e5bc69918 Bugfix in SCMAbstractFileoutLikeTask>>#shouldFileOutClass: care about removed methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 171
diff changeset
   536
    (ChangeSet current includesChangeForClass:class) ifTrue:[ ^ true ].
e31e5bc69918 Bugfix in SCMAbstractFileoutLikeTask>>#shouldFileOutClass: care about removed methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 171
diff changeset
   537
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   538
    ^false
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   539
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   540
    "
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   541
        CommitTask basicNew
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   542
            package: #'stx:libsvn';
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   543
            shouldFileOutClass: CommitTask
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   544
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   545
        CommitTask basicNew
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   546
            package: #'stx:libbasic';
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   547
            shouldFileOutClass: Object
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   548
    "
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   549
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   550
    "Created: / 24-06-2009 / 19:04:48 / Jan Vrany <vranyj1@fel.cvut.cz>"
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   551
    "Modified: / 19-08-2009 / 13:54:39 / Jan Vrany <vranyj1@fel.cvut.cz>"
184
e31e5bc69918 Bugfix in SCMAbstractFileoutLikeTask>>#shouldFileOutClass: care about removed methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 171
diff changeset
   552
    "Modified: / 21-01-2013 / 19:35:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   553
!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   554
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   555
shouldFileOutMethod: mth
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   556
53
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   557
    ^mth package = package name and:
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   558
        [mth getSourcePosition isNil]
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   559
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   560
    "Created: / 24-06-2009 / 19:07:27 / Jan Vrany <vranyj1@fel.cvut.cz>"
53
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   561
    "Modified (comment): / 15-11-2012 / 00:36:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   562
! !
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   563
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   564
!SCMAbstractFileoutLikeTask methodsFor:'queries'!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   565
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   566
isSelectiveFileoutTask
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   567
    ^ classes notNil or: [ extensionMethods notNil ]
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   568
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   569
    "Created: / 14-05-2009 / 13:24:52 / Jan Vrany <vranyj1@fel.cvut.cz>"
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   570
! !
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   571
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   572
!SCMAbstractFileoutLikeTask class methodsFor:'documentation'!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   573
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   574
version_GIT
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   575
    "Never, ever change this method. Ask JV or CG why"
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   576
    ^thisContext method mclass theNonMetaclass instVarNamed: #revision
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   577
!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   578
53
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   579
version_HG
114
8b27cb46af9a version_HG changed to return String.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 89
diff changeset
   580
8b27cb46af9a version_HG changed to return String.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 89
diff changeset
   581
    ^ '$Changeset: <not expanded> $'
53
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   582
!
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   583
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   584
version_SVN
70
3faeae24a513 fix in SCMAbstractFileoutLikeTask>>doCompileVersionMethods
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 53
diff changeset
   585
    ^ '§Id::                                                                                                                        §'
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   586
! !
335
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 302
diff changeset
   587