ConfigurableFeatures.st
author Claus Gittinger <cg@exept.de>
Tue, 09 Jul 2019 20:55:17 +0200
changeset 24417 03b083548da2
parent 17166 d51ac1087219
child 18120 e3a375d5f6a8
permissions -rw-r--r--
#REFACTORING by exept class: Smalltalk class changed: #recursiveInstallAutoloadedClassesFrom:rememberIn:maxLevels:noAutoload:packageTop:showSplashInLevels: Transcript showCR:(... bindWith:...) -> Transcript showCR:... with:...
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
13641
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:libbasic' }"
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
Object subclass:#ConfigurableFeatures
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
	instanceVariableNames:''
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
	classVariableNames:'LoadedFeatures'
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	poolDictionaries:''
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
	category:'System-Support'
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
!
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
!ConfigurableFeatures class methodsFor:'documentation'!
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
documentation
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
"
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
    being tired of finding '(Smalltalk at:someClass) notNil' all over the place,
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
    start to concentrate feature queries to this single class, which might get more
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
    feature methods via extensions.
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
    Thus, to correctly ask for a feature being present, use:
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
        ConfigurableFeature includesFeature:featureName
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
    or
16627
bdf2205fd15c class: ConfigurableFeatures
Stefan Vogel <sv@exept.de>
parents: 14242
diff changeset
    20
        ConfigurableFeatures knownFeatures
13641
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
    to ask for a list of features.
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
    Caveat: just started; more will be moved to this place as time goes by
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
"
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
! !
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
17166
d51ac1087219 Added hasRefactoryBrowser query
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16627
diff changeset
    27
!ConfigurableFeatures class methodsFor:'initialization'!
d51ac1087219 Added hasRefactoryBrowser query
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16627
diff changeset
    28
d51ac1087219 Added hasRefactoryBrowser query
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16627
diff changeset
    29
initialize
d51ac1087219 Added hasRefactoryBrowser query
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16627
diff changeset
    30
    "Invoked at system start or when the class is dynamically loaded."
d51ac1087219 Added hasRefactoryBrowser query
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16627
diff changeset
    31
d51ac1087219 Added hasRefactoryBrowser query
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16627
diff changeset
    32
    "/ please change as required (and remove this comment)
d51ac1087219 Added hasRefactoryBrowser query
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16627
diff changeset
    33
d51ac1087219 Added hasRefactoryBrowser query
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16627
diff changeset
    34
    LoadedFeatures := Dictionary new
d51ac1087219 Added hasRefactoryBrowser query
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16627
diff changeset
    35
d51ac1087219 Added hasRefactoryBrowser query
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16627
diff changeset
    36
    "Modified: / 01-12-2014 / 11:16:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d51ac1087219 Added hasRefactoryBrowser query
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16627
diff changeset
    37
! !
d51ac1087219 Added hasRefactoryBrowser query
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16627
diff changeset
    38
13641
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
!ConfigurableFeatures class methodsFor:'queries'!
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
allFeatures
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
    "a list of features which are present in that smalltalk configuration"
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
    ^ self knownFeatures select:[:each | self includesFeature:each]
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
    "
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
     ConfigurableFeatures allFeatures 
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
    "
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
    "Created: / 07-09-2011 / 10:50:31 / cg"
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
!
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
includesFeature:featureName
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
    |querySelector|
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
    querySelector := ('has',featureName asUppercaseFirst) asSymbol.
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
    ^ self perform:querySelector ifNotUnderstood:false.
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
    "
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
     ConfigurableFeatures includesFeature:#SubversionSupport
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
    "
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
    "Created: / 07-09-2011 / 10:49:08 / cg"
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
!
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
knownFeatures
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
    "a list of known features; some of them might not be present in that smalltalk configuration"
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
    ^ self class methodDictionary keys
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
        collect:[:each | 
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
            (each startsWith:'has') ifTrue:[
13948
5c482fe46e20 changed: #knownFeatures
Claus Gittinger <cg@exept.de>
parents: 13944
diff changeset
    72
                (each endsWith:':') ifFalse:[
5c482fe46e20 changed: #knownFeatures
Claus Gittinger <cg@exept.de>
parents: 13944
diff changeset
    73
                    each copyFrom:4
5c482fe46e20 changed: #knownFeatures
Claus Gittinger <cg@exept.de>
parents: 13944
diff changeset
    74
                ]
13641
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
            ] ifFalse:[
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
                nil
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
            ].
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
        ]
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
        thenSelect:[:nm | nm notNil]
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
    "
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
     ConfigurableFeatures allFeatures
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
    "
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
    "Created: / 07-09-2011 / 10:51:26 / cg"
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
! !
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
!ConfigurableFeatures class methodsFor:'queries-features'!
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
13888
ee32d4db57f5 added:7 methods
Claus Gittinger <cg@exept.de>
parents: 13887
diff changeset
    90
hasCVSSupport
ee32d4db57f5 added:7 methods
Claus Gittinger <cg@exept.de>
parents: 13887
diff changeset
    91
    "/ use Smalltalk-at to trick the dependency/prerequisite generator
ee32d4db57f5 added:7 methods
Claus Gittinger <cg@exept.de>
parents: 13887
diff changeset
    92
    ^ (Smalltalk at: #'CVSSourceCodeManager' ifAbsent:nil) notNil
ee32d4db57f5 added:7 methods
Claus Gittinger <cg@exept.de>
parents: 13887
diff changeset
    93
ee32d4db57f5 added:7 methods
Claus Gittinger <cg@exept.de>
parents: 13887
diff changeset
    94
    "
ee32d4db57f5 added:7 methods
Claus Gittinger <cg@exept.de>
parents: 13887
diff changeset
    95
     ConfigurableFeatures hasCVSSupport
ee32d4db57f5 added:7 methods
Claus Gittinger <cg@exept.de>
parents: 13887
diff changeset
    96
    "
ee32d4db57f5 added:7 methods
Claus Gittinger <cg@exept.de>
parents: 13887
diff changeset
    97
ee32d4db57f5 added:7 methods
Claus Gittinger <cg@exept.de>
parents: 13887
diff changeset
    98
    "Created: / 03-01-2012 / 15:36:54 / cg"
ee32d4db57f5 added:7 methods
Claus Gittinger <cg@exept.de>
parents: 13887
diff changeset
    99
!
ee32d4db57f5 added:7 methods
Claus Gittinger <cg@exept.de>
parents: 13887
diff changeset
   100
ee32d4db57f5 added:7 methods
Claus Gittinger <cg@exept.de>
parents: 13887
diff changeset
   101
hasCVSSupportEnabled
13944
Claus Gittinger <cg@exept.de>
parents: 13888
diff changeset
   102
    ^ self hasSCMSupportEnabledFor:#'CVSSourceCodeManager'
13888
ee32d4db57f5 added:7 methods
Claus Gittinger <cg@exept.de>
parents: 13887
diff changeset
   103
ee32d4db57f5 added:7 methods
Claus Gittinger <cg@exept.de>
parents: 13887
diff changeset
   104
    "Created: / 03-01-2012 / 15:42:16 / cg"
ee32d4db57f5 added:7 methods
Claus Gittinger <cg@exept.de>
parents: 13887
diff changeset
   105
!
ee32d4db57f5 added:7 methods
Claus Gittinger <cg@exept.de>
parents: 13887
diff changeset
   106
ee32d4db57f5 added:7 methods
Claus Gittinger <cg@exept.de>
parents: 13887
diff changeset
   107
hasDataBaseSourceCodeManagerSupport
ee32d4db57f5 added:7 methods
Claus Gittinger <cg@exept.de>
parents: 13887
diff changeset
   108
    "/ use Smalltalk-at to trick the dependency/prerequisite generator
ee32d4db57f5 added:7 methods
Claus Gittinger <cg@exept.de>
parents: 13887
diff changeset
   109
    ^ (Smalltalk at: #'DataBaseSourceCodeManager' ifAbsent:nil) notNil
ee32d4db57f5 added:7 methods
Claus Gittinger <cg@exept.de>
parents: 13887
diff changeset
   110
13887
Claus Gittinger <cg@exept.de>
parents: 13874
diff changeset
   111
    "
Claus Gittinger <cg@exept.de>
parents: 13874
diff changeset
   112
     ConfigurableFeatures hasDataBaseSourceCodeManagerSupport
Claus Gittinger <cg@exept.de>
parents: 13874
diff changeset
   113
    "
Claus Gittinger <cg@exept.de>
parents: 13874
diff changeset
   114
Claus Gittinger <cg@exept.de>
parents: 13874
diff changeset
   115
    "Created: / 03-01-2012 / 15:36:03 / cg"
Claus Gittinger <cg@exept.de>
parents: 13874
diff changeset
   116
!
Claus Gittinger <cg@exept.de>
parents: 13874
diff changeset
   117
Claus Gittinger <cg@exept.de>
parents: 13874
diff changeset
   118
hasDataBaseSourceCodeManagerSupportEnabled
13944
Claus Gittinger <cg@exept.de>
parents: 13888
diff changeset
   119
    ^ self hasSCMSupportEnabledFor:#'DataBaseSourceCodeManager'
13887
Claus Gittinger <cg@exept.de>
parents: 13874
diff changeset
   120
Claus Gittinger <cg@exept.de>
parents: 13874
diff changeset
   121
    "Created: / 03-01-2012 / 15:36:12 / cg"
Claus Gittinger <cg@exept.de>
parents: 13874
diff changeset
   122
!
Claus Gittinger <cg@exept.de>
parents: 13874
diff changeset
   123
14104
2c06d704086a added: #hasExternalLookupSupport
vrany
parents: 14059
diff changeset
   124
hasExternalLookupSupport
2c06d704086a added: #hasExternalLookupSupport
vrany
parents: 14059
diff changeset
   125
    "Return true, if the VM is compiled with external lookup MOP"
2c06d704086a added: #hasExternalLookupSupport
vrany
parents: 14059
diff changeset
   126
%{
2c06d704086a added: #hasExternalLookupSupport
vrany
parents: 14059
diff changeset
   127
#ifdef SUPPORT_EXTERNAL_LOOKUP
2c06d704086a added: #hasExternalLookupSupport
vrany
parents: 14059
diff changeset
   128
    RETURN ( true );
2c06d704086a added: #hasExternalLookupSupport
vrany
parents: 14059
diff changeset
   129
#endif
2c06d704086a added: #hasExternalLookupSupport
vrany
parents: 14059
diff changeset
   130
%}.
2c06d704086a added: #hasExternalLookupSupport
vrany
parents: 14059
diff changeset
   131
    ^false
2c06d704086a added: #hasExternalLookupSupport
vrany
parents: 14059
diff changeset
   132
2c06d704086a added: #hasExternalLookupSupport
vrany
parents: 14059
diff changeset
   133
    "
2c06d704086a added: #hasExternalLookupSupport
vrany
parents: 14059
diff changeset
   134
        ConfigurableFeatures hasExternalLookupSupport
2c06d704086a added: #hasExternalLookupSupport
vrany
parents: 14059
diff changeset
   135
        ConfigurableFeatures includesFeature:#ExternalLookupSupport
2c06d704086a added: #hasExternalLookupSupport
vrany
parents: 14059
diff changeset
   136
    "
2c06d704086a added: #hasExternalLookupSupport
vrany
parents: 14059
diff changeset
   137
2c06d704086a added: #hasExternalLookupSupport
vrany
parents: 14059
diff changeset
   138
    "Created: / 16-04-2012 / 20:00:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2c06d704086a added: #hasExternalLookupSupport
vrany
parents: 14059
diff changeset
   139
!
2c06d704086a added: #hasExternalLookupSupport
vrany
parents: 14059
diff changeset
   140
13874
Claus Gittinger <cg@exept.de>
parents: 13641
diff changeset
   141
hasFileBasedSourceCodeManagerSupport
13888
ee32d4db57f5 added:7 methods
Claus Gittinger <cg@exept.de>
parents: 13887
diff changeset
   142
    "/ use Smalltalk-at to trick the dependency/prerequisite generator
ee32d4db57f5 added:7 methods
Claus Gittinger <cg@exept.de>
parents: 13887
diff changeset
   143
    ^ (Smalltalk at: #'FileBasedSourceCodeManager' ifAbsent:nil) notNil
13874
Claus Gittinger <cg@exept.de>
parents: 13641
diff changeset
   144
Claus Gittinger <cg@exept.de>
parents: 13641
diff changeset
   145
    "
Claus Gittinger <cg@exept.de>
parents: 13641
diff changeset
   146
     ConfigurableFeatures hasFileBasedSourceCodeManagerSupport
Claus Gittinger <cg@exept.de>
parents: 13641
diff changeset
   147
    "
Claus Gittinger <cg@exept.de>
parents: 13641
diff changeset
   148
Claus Gittinger <cg@exept.de>
parents: 13641
diff changeset
   149
    "Created: / 21-12-2011 / 17:07:21 / cg"
Claus Gittinger <cg@exept.de>
parents: 13641
diff changeset
   150
!
Claus Gittinger <cg@exept.de>
parents: 13641
diff changeset
   151
Claus Gittinger <cg@exept.de>
parents: 13641
diff changeset
   152
hasFileBasedSourceCodeManagerSupportEnabled
13944
Claus Gittinger <cg@exept.de>
parents: 13888
diff changeset
   153
    ^ self hasSCMSupportEnabledFor:#'FileBasedSourceCodeManager'
13874
Claus Gittinger <cg@exept.de>
parents: 13641
diff changeset
   154
Claus Gittinger <cg@exept.de>
parents: 13641
diff changeset
   155
    "Created: / 21-12-2011 / 17:07:08 / cg"
Claus Gittinger <cg@exept.de>
parents: 13641
diff changeset
   156
!
Claus Gittinger <cg@exept.de>
parents: 13641
diff changeset
   157
14242
Claus Gittinger <cg@exept.de>
parents: 14104
diff changeset
   158
hasGitSupport
Claus Gittinger <cg@exept.de>
parents: 14104
diff changeset
   159
    "/ use Smalltalk-at to trick the dependency/prerequisite generator
Claus Gittinger <cg@exept.de>
parents: 14104
diff changeset
   160
    ^ (Smalltalk at: #'GitSourceCodeManager' ifAbsent:nil) notNil
Claus Gittinger <cg@exept.de>
parents: 14104
diff changeset
   161
Claus Gittinger <cg@exept.de>
parents: 14104
diff changeset
   162
    "
Claus Gittinger <cg@exept.de>
parents: 14104
diff changeset
   163
     ConfigurableFeatures hasGitSupport
Claus Gittinger <cg@exept.de>
parents: 14104
diff changeset
   164
    "
Claus Gittinger <cg@exept.de>
parents: 14104
diff changeset
   165
Claus Gittinger <cg@exept.de>
parents: 14104
diff changeset
   166
    "Created: / 23-07-2012 / 13:37:09 / cg"
Claus Gittinger <cg@exept.de>
parents: 14104
diff changeset
   167
!
Claus Gittinger <cg@exept.de>
parents: 14104
diff changeset
   168
Claus Gittinger <cg@exept.de>
parents: 14104
diff changeset
   169
hasGitSupportEnabled
Claus Gittinger <cg@exept.de>
parents: 14104
diff changeset
   170
    ^ self hasSCMSupportEnabledFor:#'GitSourceCodeManager'
Claus Gittinger <cg@exept.de>
parents: 14104
diff changeset
   171
Claus Gittinger <cg@exept.de>
parents: 14104
diff changeset
   172
    "
Claus Gittinger <cg@exept.de>
parents: 14104
diff changeset
   173
     self hasGitSupportEnabled
Claus Gittinger <cg@exept.de>
parents: 14104
diff changeset
   174
    "
Claus Gittinger <cg@exept.de>
parents: 14104
diff changeset
   175
Claus Gittinger <cg@exept.de>
parents: 14104
diff changeset
   176
    "Created: / 23-07-2012 / 13:37:17 / cg"
Claus Gittinger <cg@exept.de>
parents: 14104
diff changeset
   177
!
Claus Gittinger <cg@exept.de>
parents: 14104
diff changeset
   178
13944
Claus Gittinger <cg@exept.de>
parents: 13888
diff changeset
   179
hasMercurialSupport
Claus Gittinger <cg@exept.de>
parents: 13888
diff changeset
   180
    "/ use Smalltalk-at to trick the dependency/prerequisite generator
Claus Gittinger <cg@exept.de>
parents: 13888
diff changeset
   181
    ^ (Smalltalk at: #'MercurialSourceCodeManager' ifAbsent:nil) notNil
Claus Gittinger <cg@exept.de>
parents: 13888
diff changeset
   182
Claus Gittinger <cg@exept.de>
parents: 13888
diff changeset
   183
    "
Claus Gittinger <cg@exept.de>
parents: 13888
diff changeset
   184
     ConfigurableFeatures hasMercurialSupport
Claus Gittinger <cg@exept.de>
parents: 13888
diff changeset
   185
    "
Claus Gittinger <cg@exept.de>
parents: 13888
diff changeset
   186
Claus Gittinger <cg@exept.de>
parents: 13888
diff changeset
   187
    "Created: / 18-01-2012 / 10:58:07 / cg"
Claus Gittinger <cg@exept.de>
parents: 13888
diff changeset
   188
!
Claus Gittinger <cg@exept.de>
parents: 13888
diff changeset
   189
Claus Gittinger <cg@exept.de>
parents: 13888
diff changeset
   190
hasMercurialSupportEnabled
Claus Gittinger <cg@exept.de>
parents: 13888
diff changeset
   191
    ^ self hasSCMSupportEnabledFor:#'MercurialSourceCodeManager'
Claus Gittinger <cg@exept.de>
parents: 13888
diff changeset
   192
Claus Gittinger <cg@exept.de>
parents: 13888
diff changeset
   193
    "
Claus Gittinger <cg@exept.de>
parents: 13888
diff changeset
   194
     self hasMercurialSupportEnabled
Claus Gittinger <cg@exept.de>
parents: 13888
diff changeset
   195
    "
Claus Gittinger <cg@exept.de>
parents: 13888
diff changeset
   196
Claus Gittinger <cg@exept.de>
parents: 13888
diff changeset
   197
    "Created: / 18-01-2012 / 10:58:12 / cg"
Claus Gittinger <cg@exept.de>
parents: 13888
diff changeset
   198
!
Claus Gittinger <cg@exept.de>
parents: 13888
diff changeset
   199
13888
ee32d4db57f5 added:7 methods
Claus Gittinger <cg@exept.de>
parents: 13887
diff changeset
   200
hasMonticelloSupport
ee32d4db57f5 added:7 methods
Claus Gittinger <cg@exept.de>
parents: 13887
diff changeset
   201
    "/ use Smalltalk-at to trick the dependency/prerequisite generator
ee32d4db57f5 added:7 methods
Claus Gittinger <cg@exept.de>
parents: 13887
diff changeset
   202
    ^ (Smalltalk at: #'MonticelloSourceCodeManager' ifAbsent:nil) notNil
ee32d4db57f5 added:7 methods
Claus Gittinger <cg@exept.de>
parents: 13887
diff changeset
   203
ee32d4db57f5 added:7 methods
Claus Gittinger <cg@exept.de>
parents: 13887
diff changeset
   204
    "
ee32d4db57f5 added:7 methods
Claus Gittinger <cg@exept.de>
parents: 13887
diff changeset
   205
     ConfigurableFeatures hasMonticelloSupport
ee32d4db57f5 added:7 methods
Claus Gittinger <cg@exept.de>
parents: 13887
diff changeset
   206
    "
ee32d4db57f5 added:7 methods
Claus Gittinger <cg@exept.de>
parents: 13887
diff changeset
   207
ee32d4db57f5 added:7 methods
Claus Gittinger <cg@exept.de>
parents: 13887
diff changeset
   208
    "Created: / 03-01-2012 / 15:44:32 / cg"
ee32d4db57f5 added:7 methods
Claus Gittinger <cg@exept.de>
parents: 13887
diff changeset
   209
!
ee32d4db57f5 added:7 methods
Claus Gittinger <cg@exept.de>
parents: 13887
diff changeset
   210
ee32d4db57f5 added:7 methods
Claus Gittinger <cg@exept.de>
parents: 13887
diff changeset
   211
hasMonticelloSupportEnabled
13944
Claus Gittinger <cg@exept.de>
parents: 13888
diff changeset
   212
    ^ self hasSCMSupportEnabledFor:#'MonticelloSourceCodeManager'
13888
ee32d4db57f5 added:7 methods
Claus Gittinger <cg@exept.de>
parents: 13887
diff changeset
   213
ee32d4db57f5 added:7 methods
Claus Gittinger <cg@exept.de>
parents: 13887
diff changeset
   214
    "Created: / 03-01-2012 / 15:44:39 / cg"
ee32d4db57f5 added:7 methods
Claus Gittinger <cg@exept.de>
parents: 13887
diff changeset
   215
!
ee32d4db57f5 added:7 methods
Claus Gittinger <cg@exept.de>
parents: 13887
diff changeset
   216
ee32d4db57f5 added:7 methods
Claus Gittinger <cg@exept.de>
parents: 13887
diff changeset
   217
hasPerforceSupport
ee32d4db57f5 added:7 methods
Claus Gittinger <cg@exept.de>
parents: 13887
diff changeset
   218
    "/ use Smalltalk-at to trick the dependency/prerequisite generator
ee32d4db57f5 added:7 methods
Claus Gittinger <cg@exept.de>
parents: 13887
diff changeset
   219
    ^ (Smalltalk at: #'PerforceSourceCodeManager' ifAbsent:nil) notNil
ee32d4db57f5 added:7 methods
Claus Gittinger <cg@exept.de>
parents: 13887
diff changeset
   220
ee32d4db57f5 added:7 methods
Claus Gittinger <cg@exept.de>
parents: 13887
diff changeset
   221
    "
ee32d4db57f5 added:7 methods
Claus Gittinger <cg@exept.de>
parents: 13887
diff changeset
   222
     ConfigurableFeatures hasPerforceSupport
ee32d4db57f5 added:7 methods
Claus Gittinger <cg@exept.de>
parents: 13887
diff changeset
   223
    "
13641
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   224
13888
ee32d4db57f5 added:7 methods
Claus Gittinger <cg@exept.de>
parents: 13887
diff changeset
   225
    "Created: / 03-01-2012 / 15:43:42 / cg"
ee32d4db57f5 added:7 methods
Claus Gittinger <cg@exept.de>
parents: 13887
diff changeset
   226
!
ee32d4db57f5 added:7 methods
Claus Gittinger <cg@exept.de>
parents: 13887
diff changeset
   227
ee32d4db57f5 added:7 methods
Claus Gittinger <cg@exept.de>
parents: 13887
diff changeset
   228
hasPerforceSupportEnabled
13944
Claus Gittinger <cg@exept.de>
parents: 13888
diff changeset
   229
    ^ self hasSCMSupportEnabledFor:#'PerforceSourceCodeManager'
13888
ee32d4db57f5 added:7 methods
Claus Gittinger <cg@exept.de>
parents: 13887
diff changeset
   230
ee32d4db57f5 added:7 methods
Claus Gittinger <cg@exept.de>
parents: 13887
diff changeset
   231
    "Created: / 03-01-2012 / 15:43:28 / cg"
ee32d4db57f5 added:7 methods
Claus Gittinger <cg@exept.de>
parents: 13887
diff changeset
   232
!
ee32d4db57f5 added:7 methods
Claus Gittinger <cg@exept.de>
parents: 13887
diff changeset
   233
17166
d51ac1087219 Added hasRefactoryBrowser query
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16627
diff changeset
   234
hasRefactoryBrowser
d51ac1087219 Added hasRefactoryBrowser query
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16627
diff changeset
   235
    "Return true, if refactory browser support is available"
d51ac1087219 Added hasRefactoryBrowser query
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16627
diff changeset
   236
d51ac1087219 Added hasRefactoryBrowser query
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16627
diff changeset
   237
    (LoadedFeatures includesKey: #RefactoryBrowser) ifFalse:[ 
d51ac1087219 Added hasRefactoryBrowser query
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16627
diff changeset
   238
        "/ Called for the very first time
d51ac1087219 Added hasRefactoryBrowser query
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16627
diff changeset
   239
d51ac1087219 Added hasRefactoryBrowser query
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16627
diff changeset
   240
        #(
d51ac1087219 Added hasRefactoryBrowser query
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16627
diff changeset
   241
            #'stx:goodies/refactoryBrowser/browser'
d51ac1087219 Added hasRefactoryBrowser query
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16627
diff changeset
   242
            #'stx:goodies/refactoryBrowser/changes'
d51ac1087219 Added hasRefactoryBrowser query
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16627
diff changeset
   243
            #'stx:goodies/refactoryBrowser/helpers'
d51ac1087219 Added hasRefactoryBrowser query
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16627
diff changeset
   244
            #'stx:goodies/refactoryBrowser/lint'
d51ac1087219 Added hasRefactoryBrowser query
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16627
diff changeset
   245
            #'stx:goodies/refactoryBrowser/parser'
d51ac1087219 Added hasRefactoryBrowser query
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16627
diff changeset
   246
            #'stx:goodies/refactoryBrowser/refactoring'
d51ac1087219 Added hasRefactoryBrowser query
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16627
diff changeset
   247
        ) do:[:each | 
d51ac1087219 Added hasRefactoryBrowser query
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16627
diff changeset
   248
            (ProjectDefinition definitionClassForPackage: each) isNil ifTrue:[
d51ac1087219 Added hasRefactoryBrowser query
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16627
diff changeset
   249
                | loaded |
d51ac1087219 Added hasRefactoryBrowser query
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16627
diff changeset
   250
d51ac1087219 Added hasRefactoryBrowser query
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16627
diff changeset
   251
                loaded := [ Smalltalk loadPackage: each ] on: PackageLoadError do:[ false ].
d51ac1087219 Added hasRefactoryBrowser query
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16627
diff changeset
   252
                loaded ifFalse:[ 
d51ac1087219 Added hasRefactoryBrowser query
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16627
diff changeset
   253
                    LoadedFeatures at: #RefactoryBrowser put: false.
d51ac1087219 Added hasRefactoryBrowser query
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16627
diff changeset
   254
                    ^ false.
d51ac1087219 Added hasRefactoryBrowser query
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16627
diff changeset
   255
                ].
d51ac1087219 Added hasRefactoryBrowser query
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16627
diff changeset
   256
            ]
d51ac1087219 Added hasRefactoryBrowser query
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16627
diff changeset
   257
        ].
d51ac1087219 Added hasRefactoryBrowser query
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16627
diff changeset
   258
        LoadedFeatures at: #RefactoryBrowser put: true.
d51ac1087219 Added hasRefactoryBrowser query
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16627
diff changeset
   259
        ^ true
d51ac1087219 Added hasRefactoryBrowser query
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16627
diff changeset
   260
    ].
d51ac1087219 Added hasRefactoryBrowser query
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16627
diff changeset
   261
    ^ LoadedFeatures includesKey: #RefactoryBrowser
d51ac1087219 Added hasRefactoryBrowser query
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16627
diff changeset
   262
d51ac1087219 Added hasRefactoryBrowser query
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16627
diff changeset
   263
    "
d51ac1087219 Added hasRefactoryBrowser query
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16627
diff changeset
   264
    ConfigurableFeatures includesFeature: #RefactoryBrowser    
d51ac1087219 Added hasRefactoryBrowser query
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16627
diff changeset
   265
    "
d51ac1087219 Added hasRefactoryBrowser query
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16627
diff changeset
   266
d51ac1087219 Added hasRefactoryBrowser query
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16627
diff changeset
   267
    "Created: / 01-12-2014 / 11:16:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d51ac1087219 Added hasRefactoryBrowser query
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16627
diff changeset
   268
!
d51ac1087219 Added hasRefactoryBrowser query
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16627
diff changeset
   269
13944
Claus Gittinger <cg@exept.de>
parents: 13888
diff changeset
   270
hasSCMSupportEnabledFor:aSourceCodeManagerClassName
Claus Gittinger <cg@exept.de>
parents: 13888
diff changeset
   271
    |scm|
Claus Gittinger <cg@exept.de>
parents: 13888
diff changeset
   272
Claus Gittinger <cg@exept.de>
parents: 13888
diff changeset
   273
    "/ use Smalltalk-at to trick the dependency/prerequisite generator
Claus Gittinger <cg@exept.de>
parents: 13888
diff changeset
   274
    scm := Smalltalk at:aSourceCodeManagerClassName ifAbsent:nil.
Claus Gittinger <cg@exept.de>
parents: 13888
diff changeset
   275
Claus Gittinger <cg@exept.de>
parents: 13888
diff changeset
   276
    ^ scm notNil
Claus Gittinger <cg@exept.de>
parents: 13888
diff changeset
   277
        and:[ scm isLoaded 
Claus Gittinger <cg@exept.de>
parents: 13888
diff changeset
   278
        and:[ scm shownInBrowserMenus ]]
Claus Gittinger <cg@exept.de>
parents: 13888
diff changeset
   279
Claus Gittinger <cg@exept.de>
parents: 13888
diff changeset
   280
    "Created: / 18-01-2012 / 10:55:58 / cg"
Claus Gittinger <cg@exept.de>
parents: 13888
diff changeset
   281
!
Claus Gittinger <cg@exept.de>
parents: 13888
diff changeset
   282
13888
ee32d4db57f5 added:7 methods
Claus Gittinger <cg@exept.de>
parents: 13887
diff changeset
   283
hasSubversionSupport
ee32d4db57f5 added:7 methods
Claus Gittinger <cg@exept.de>
parents: 13887
diff changeset
   284
    "/ use Smalltalk-at to trick the dependency/prerequisite generator
14059
9afc79d37c0c changed: #hasSubversionSupport (stc compilation fix)
vrany
parents: 13948
diff changeset
   285
    ^ (Smalltalk at: #'SVNSourceCodeManager' ifAbsent:nil) notNil
13641
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   286
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   287
    "
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   288
     ConfigurableFeatures hasSubversionSupport
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   289
    "
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   290
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   291
    "Created: / 07-09-2011 / 10:40:40 / cg"
14059
9afc79d37c0c changed: #hasSubversionSupport (stc compilation fix)
vrany
parents: 13948
diff changeset
   292
    "Modified: / 13-03-2012 / 17:19:13 / Jan Vrany <jan.vrany.fit.cvut.cz>"
13641
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   293
!
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   294
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   295
hasSubversionSupportEnabled
13944
Claus Gittinger <cg@exept.de>
parents: 13888
diff changeset
   296
    ^ self hasSCMSupportEnabledFor:#'SVNSourceCodeManager'
13641
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   297
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   298
    "Created: / 07-09-2011 / 10:41:33 / cg"
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   299
! !
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   300
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   301
!ConfigurableFeatures class methodsFor:'documentation'!
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   302
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   303
version
17166
d51ac1087219 Added hasRefactoryBrowser query
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16627
diff changeset
   304
    ^ '$Header: /cvs/stx/stx/libbasic/ConfigurableFeatures.st,v 1.11 2014-12-01 11:24:54 vrany Exp $'
13641
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   305
!
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   306
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   307
version_CVS
17166
d51ac1087219 Added hasRefactoryBrowser query
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16627
diff changeset
   308
    ^ '$Header: /cvs/stx/stx/libbasic/ConfigurableFeatures.st,v 1.11 2014-12-01 11:24:54 vrany Exp $'
13641
2fe2dd2ca2d3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   309
! !
16627
bdf2205fd15c class: ConfigurableFeatures
Stefan Vogel <sv@exept.de>
parents: 14242
diff changeset
   310
17166
d51ac1087219 Added hasRefactoryBrowser query
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16627
diff changeset
   311
d51ac1087219 Added hasRefactoryBrowser query
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16627
diff changeset
   312
ConfigurableFeatures initialize!