RegressionTests__MakefileTests.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Wed, 29 Jun 2016 21:40:53 +0100
branchjv
changeset 1499 26a16a04219b
parent 1479 974a26a06296
child 1500 d406a10b2965
permissions -rw-r--r--
Package renamed from exept:regression to stx:goodies/regression. Hooray!
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1499
26a16a04219b Package renamed from exept:regression to stx:goodies/regression. Hooray!
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1479
diff changeset
     1
"{ Package: 'stx:goodies/regression' }"
1008
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
"{ NameSpace: RegressionTests }"
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
TestCase subclass:#MakefileTests
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
	instanceVariableNames:'package packageDir'
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
	classVariableNames:''
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
	poolDictionaries:''
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
	category:'tests-Regression'
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
!
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
StandaloneStartup subclass:#TestApplication01
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
	instanceVariableNames:''
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
	classVariableNames:''
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
	poolDictionaries:''
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
	privateIn:MakefileTests
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
!
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
!MakefileTests class methodsFor:'documentation'!
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
documentation
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
"
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
    This testcase tests St/X makefiles used to build 
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
    standalone applications.
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
    [author:]
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
        Jan Vrany <jan.vrany@fit.cvut.cz>
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
    [instance variables:]
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
    [class variables:]
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
    [see also:]
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
"
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
! !
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
!MakefileTests methodsFor:'compilation'!
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
make
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
    ^ self make:''.
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
    "Created: / 14-08-2013 / 18:27:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
!
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
make: target
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
    | cmd |
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
1474
54b7f76f0e68 Fixed MakefileTests under Windows/MINGW toolchain
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1148
diff changeset
    49
    OperatingSystem isMSWINDOWSlike ifTrue:[ 
54b7f76f0e68 Fixed MakefileTests under Windows/MINGW toolchain
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1148
diff changeset
    50
        OperatingSystem getCCDefine = '__BORLANDC__' ifTrue:[ 
54b7f76f0e68 Fixed MakefileTests under Windows/MINGW toolchain
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1148
diff changeset
    51
            cmd := 'bmake.bat ' , target.
54b7f76f0e68 Fixed MakefileTests under Windows/MINGW toolchain
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1148
diff changeset
    52
        ].
54b7f76f0e68 Fixed MakefileTests under Windows/MINGW toolchain
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1148
diff changeset
    53
        OperatingSystem getCCDefine = '__MINGW32__' ifTrue:[ 
54b7f76f0e68 Fixed MakefileTests under Windows/MINGW toolchain
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1148
diff changeset
    54
            (OperatingSystem getEnvironment: 'MINGW_DIR') isNil ifTrue:[ 
54b7f76f0e68 Fixed MakefileTests under Windows/MINGW toolchain
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1148
diff changeset
    55
                self assert: 'C:\MINGW' asFilename exists description: 'MINGW_DIR environment variable not set and C:\MINGW does not exist'.
54b7f76f0e68 Fixed MakefileTests under Windows/MINGW toolchain
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1148
diff changeset
    56
                OperatingSystem setEnvironment: 'MINGW_DIR'     to: 'C:\MINGW'.
54b7f76f0e68 Fixed MakefileTests under Windows/MINGW toolchain
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1148
diff changeset
    57
            ].
54b7f76f0e68 Fixed MakefileTests under Windows/MINGW toolchain
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1148
diff changeset
    58
            OperatingSystem setEnvironment: 'MINGW'         to: '__MINGW32__'.
54b7f76f0e68 Fixed MakefileTests under Windows/MINGW toolchain
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1148
diff changeset
    59
            OperatingSystem setEnvironment: 'USEMINGW_ARG'  to: '-DUSEMINGW32'.
54b7f76f0e68 Fixed MakefileTests under Windows/MINGW toolchain
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1148
diff changeset
    60
            OperatingSystem setEnvironment: 'PATH'          to: (OperatingSystem getEnvironment: 'PATH') , ';C:\MINGW\bin'.
54b7f76f0e68 Fixed MakefileTests under Windows/MINGW toolchain
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1148
diff changeset
    61
            cmd := 'mingwmake.bat ' , target.
54b7f76f0e68 Fixed MakefileTests under Windows/MINGW toolchain
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1148
diff changeset
    62
        ].
54b7f76f0e68 Fixed MakefileTests under Windows/MINGW toolchain
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1148
diff changeset
    63
        OperatingSystem getCCDefine = '__MINGW64__' ifTrue:[ 
54b7f76f0e68 Fixed MakefileTests under Windows/MINGW toolchain
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1148
diff changeset
    64
            (OperatingSystem getEnvironment: 'MINGW_DIR') isNil ifTrue:[ 
54b7f76f0e68 Fixed MakefileTests under Windows/MINGW toolchain
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1148
diff changeset
    65
                self assert: 'C:\MINGW64' asFilename exists description: 'MINGW_DIR environment variable not set and C:\MINGW does not exist'.
54b7f76f0e68 Fixed MakefileTests under Windows/MINGW toolchain
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1148
diff changeset
    66
                OperatingSystem setEnvironment: 'MINGW_DIR'     to: 'C:\MINGW64'.
54b7f76f0e68 Fixed MakefileTests under Windows/MINGW toolchain
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1148
diff changeset
    67
            ].
54b7f76f0e68 Fixed MakefileTests under Windows/MINGW toolchain
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1148
diff changeset
    68
            OperatingSystem setEnvironment: 'MINGW'         to: '__MINGW64__'.
54b7f76f0e68 Fixed MakefileTests under Windows/MINGW toolchain
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1148
diff changeset
    69
            OperatingSystem setEnvironment: 'USEMINGW_ARG'  to: '-DUSEMINGW64'.
54b7f76f0e68 Fixed MakefileTests under Windows/MINGW toolchain
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1148
diff changeset
    70
            OperatingSystem setEnvironment: 'PATH'          to: (OperatingSystem getEnvironment: 'PATH') , ';C:\MINGW64\bin'.
54b7f76f0e68 Fixed MakefileTests under Windows/MINGW toolchain
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1148
diff changeset
    71
            cmd := 'mingwmake.bat ' , target.
54b7f76f0e68 Fixed MakefileTests under Windows/MINGW toolchain
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1148
diff changeset
    72
        ].
54b7f76f0e68 Fixed MakefileTests under Windows/MINGW toolchain
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1148
diff changeset
    73
    ] ifFalse:[
54b7f76f0e68 Fixed MakefileTests under Windows/MINGW toolchain
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1148
diff changeset
    74
        cmd := 'make -f Makefile.init ', target
54b7f76f0e68 Fixed MakefileTests under Windows/MINGW toolchain
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1148
diff changeset
    75
    ].
1008
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
    self 
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
        assert: (OperatingSystem executeCommand: cmd inDirectory: packageDir)
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
        description: 'Failed to make target ''', target, ''' in test package'.
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
    "Created: / 14-08-2013 / 18:26:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
    "Modified: / 19-11-2013 / 18:49:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1474
54b7f76f0e68 Fixed MakefileTests under Windows/MINGW toolchain
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1148
diff changeset
    82
    "Modified: / 21-12-2015 / 14:45:20 / jv"
1008
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
! !
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
!MakefileTests methodsFor:'running'!
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    87
setUp
1021
19269c8a3ba6 class: RegressionTests::MakefileTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1008
diff changeset
    88
    self setUpForPackage:'tmp:makefiletests'.
19269c8a3ba6 class: RegressionTests::MakefileTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1008
diff changeset
    89
19269c8a3ba6 class: RegressionTests::MakefileTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1008
diff changeset
    90
    "Created: / 19-11-2013 / 12:57:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
19269c8a3ba6 class: RegressionTests::MakefileTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1008
diff changeset
    91
    "Modified: / 24-11-2013 / 22:23:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
19269c8a3ba6 class: RegressionTests::MakefileTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1008
diff changeset
    92
!
19269c8a3ba6 class: RegressionTests::MakefileTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1008
diff changeset
    93
19269c8a3ba6 class: RegressionTests::MakefileTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1008
diff changeset
    94
setUpForPackage: pkg
19269c8a3ba6 class: RegressionTests::MakefileTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1008
diff changeset
    95
    | components |
19269c8a3ba6 class: RegressionTests::MakefileTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1008
diff changeset
    96
    package := pkg.
19269c8a3ba6 class: RegressionTests::MakefileTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1008
diff changeset
    97
    packageDir := (Smalltalk getPackageDirectoryForPackage: Object package) directory directory.
19269c8a3ba6 class: RegressionTests::MakefileTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1008
diff changeset
    98
    components := (package copyReplaceAll: $: with:$/) tokensBasedOn: $/.
19269c8a3ba6 class: RegressionTests::MakefileTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1008
diff changeset
    99
    components do:[:each |
19269c8a3ba6 class: RegressionTests::MakefileTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1008
diff changeset
   100
        packageDir := packageDir / each.
19269c8a3ba6 class: RegressionTests::MakefileTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1008
diff changeset
   101
    ].
1008
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   102
    packageDir exists ifTrue:[
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   103
        packageDir recursiveRemove.
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   104
    ].
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   105
    packageDir recursiveMakeDirectory
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   106
1021
19269c8a3ba6 class: RegressionTests::MakefileTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1008
diff changeset
   107
    "Created: / 24-11-2013 / 22:23:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1008
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   108
! !
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   109
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   110
!MakefileTests methodsFor:'tests'!
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   111
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   112
test_application_01
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   113
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   114
    self run:#'test_application_01' type:ProjectDefinition nonGuiApplicationType toolchain:nil
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   115
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   116
    "Created: / 19-11-2013 / 14:05:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1021
19269c8a3ba6 class: RegressionTests::MakefileTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1008
diff changeset
   117
!
19269c8a3ba6 class: RegressionTests::MakefileTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1008
diff changeset
   118
19269c8a3ba6 class: RegressionTests::MakefileTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1008
diff changeset
   119
test_application_02
19269c8a3ba6 class: RegressionTests::MakefileTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1008
diff changeset
   120
19269c8a3ba6 class: RegressionTests::MakefileTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1008
diff changeset
   121
    self setUpForPackage: 'tmp:makefiletests2/test_application_02'.
19269c8a3ba6 class: RegressionTests::MakefileTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1008
diff changeset
   122
    self run:#'test_application_01' type:ProjectDefinition nonGuiApplicationType toolchain:nil
19269c8a3ba6 class: RegressionTests::MakefileTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1008
diff changeset
   123
19269c8a3ba6 class: RegressionTests::MakefileTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1008
diff changeset
   124
    "Created: / 24-11-2013 / 22:23:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1008
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   125
! !
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   126
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   127
!MakefileTests methodsFor:'tests-helpers'!
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   128
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   129
run:packageIdent type:packageType toolchain:toolchain 
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   130
    | packageDef  startup |
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   131
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   132
    "/ Compile all classes...
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   133
    Class packageQuerySignal answer:package do:[
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   134
        (self class privateClasses select:[:cls | cls packageIdent = packageIdent ]) do:[:cls | 
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   135
                | copy |
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   136
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   137
                copy := cls superclass 
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   138
                        subclass: cls nameWithoutPrefix
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   139
                        instanceVariableNames:(cls instVarNames asStringWith:' ')
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   140
                        classVariableNames:(cls classVarNames asStringWith:' ')
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   141
                        poolDictionaries:cls poolDictionaries
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   142
                        category:'** tmp **'.
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   143
                cls methodDictionary do:[:each | 
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   144
                    copy compile:each source classified:each category.
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   145
                ].
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   146
                cls class methodDictionary do:[:each | 
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   147
                    copy class compile:each source classified:each category.
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   148
                ].
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   149
                (copy inheritsFrom:StandaloneStartup) ifTrue:[
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   150
                    startup := copy.
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   151
                ].
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   152
            ].
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   153
        ].
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   154
    
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   155
    "/ Create project definition class.
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   156
    Class packageQuerySignal answer:package do:[    
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   157
        packageDef := ProjectDefinition 
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   158
                definitionClassForPackage:package
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   159
                projectType:packageType
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   160
                createIfAbsent:true.
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   161
        packageDef theNonMetaclass 
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   162
            forEachContentsMethodsCodeToCompileDo:[:code :category | packageDef theMetaclass compile:code classified:category ]
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   163
            "/ignoreOldEntries: false
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   164
            ignoreOldDefinition: false.
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   165
        packageDef isApplicationDefinition ifTrue:[
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   166
            packageDef class compile:'startupClassName ^ ' , startup fullName storeString.
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   167
        ].
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   168
    ].    
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   169
    "/ Fileout to package directory...
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   170
    
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   171
    packageDef classes do:[:class | 
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   172
        | container |
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   173
1148
341a95374920 Fix in copyReplaceAll:wiith:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1021
diff changeset
   174
        container := (class fullName copyReplaceAll:$: with:$_) , '.st'.
1008
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   175
        (packageDir / container) 
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   176
            writingFileDo:[:f | 
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   177
                AbstractSourceCodeManager 
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   178
                    fileOutSourceCodeOf:class
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   179
                    on:f
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   180
                    withTimeStamp:false
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   181
                    withInitialize:true
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   182
                    withDefinition:true
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   183
                    methodFilter:[:mth | mth package = package ]
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   184
            ]
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   185
    ].
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   186
    
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   187
    "/ Generate build support files...
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   188
    
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   189
    packageDef fileNamesToGenerate keys do:[:filename | 
1479
974a26a06296 MakefileTests: Fixed build support file generation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1474
diff changeset
   190
        | contents file |
1008
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   191
1479
974a26a06296 MakefileTests: Fixed build support file generation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1474
diff changeset
   192
        contents := packageDef generateFile:filename.
974a26a06296 MakefileTests: Fixed build support file generation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1474
diff changeset
   193
        contents notNil ifTrue:[ 
974a26a06296 MakefileTests: Fixed build support file generation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1474
diff changeset
   194
            file := (packageDir / filename).
974a26a06296 MakefileTests: Fixed build support file generation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1474
diff changeset
   195
            file directory recursiveMakeDirectory.
974a26a06296 MakefileTests: Fixed build support file generation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1474
diff changeset
   196
            file writingFileDo:[:f | f nextPutAll: contents].
974a26a06296 MakefileTests: Fixed build support file generation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1474
diff changeset
   197
        ]
1008
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   198
    ].
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   199
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   200
    self make.
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   201
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   202
    "Created: / 19-11-2013 / 14:07:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1479
974a26a06296 MakefileTests: Fixed build support file generation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1474
diff changeset
   203
    "Modified: / 12-02-2016 / 15:12:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1008
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   204
! !
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   205
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   206
!MakefileTests::TestApplication01 class methodsFor:'accessing'!
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   207
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   208
packageIdent
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   209
    ^ #test_application_01
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   210
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   211
    "Created: / 19-11-2013 / 14:04:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   212
! !
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   213
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   214
!MakefileTests::TestApplication01 class methodsFor:'startup-to be redefined'!
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   215
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   216
main:args
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   217
    args isEmpty ifTrue:[
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   218
        Smalltalk exit: 0.
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   219
    ].
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   220
    args size ~~ 1 ifTrue:[
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   221
        Smalltalk exit: 127.
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   222
    ].
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   223
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   224
    [
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   225
        Smalltalk exit: args first asInteger.
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   226
    ] on: Error do:[:ex|
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   227
        Smalltalk exit: 126.
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   228
    ].
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   229
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   230
    "Created: / 19-11-2013 / 13:12:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   231
! !
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   232
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   233
!MakefileTests class methodsFor:'documentation'!
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   234
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   235
version
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   236
    ^ '$Header$'
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   237
!
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   238
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   239
version_CVS
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   240
    ^ '$Header$'
1474
54b7f76f0e68 Fixed MakefileTests under Windows/MINGW toolchain
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1148
diff changeset
   241
!
54b7f76f0e68 Fixed MakefileTests under Windows/MINGW toolchain
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1148
diff changeset
   242
54b7f76f0e68 Fixed MakefileTests under Windows/MINGW toolchain
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1148
diff changeset
   243
version_HG
54b7f76f0e68 Fixed MakefileTests under Windows/MINGW toolchain
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1148
diff changeset
   244
54b7f76f0e68 Fixed MakefileTests under Windows/MINGW toolchain
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1148
diff changeset
   245
    ^ '$Changeset: <not expanded> $'
1008
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   246
! !
37bb72c774c2 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   247