build-tool 0.0.3 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data.tar.gz.sig +0 -0
- data/History.txt +28 -1
- data/Manifest.txt +91 -52
- data/README.txt +63 -0
- data/Rakefile +20 -23
- data/bin/build-tool +53 -0
- data/lib/build-tool.rb +7 -0
- data/lib/build-tool/GUI.rb +360 -0
- data/lib/build-tool/application.rb +84 -0
- data/lib/build-tool/build-system/autoconf.rb +60 -0
- data/lib/build-tool/build-system/base.rb +142 -0
- data/lib/build-tool/build-system/cmake.rb +119 -0
- data/lib/build-tool/build-system/custom.rb +115 -0
- data/lib/build-tool/build-system/qt.rb +113 -0
- data/lib/build-tool/cfg/lexer.rb +558 -0
- data/lib/build-tool/cfg/lexer.rex +248 -0
- data/lib/build-tool/cfg/lexer_base.rb +82 -0
- data/lib/build-tool/cfg/node.rb +94 -0
- data/lib/build-tool/cfg/parser.rb +871 -0
- data/lib/build-tool/cfg/parser.y +279 -0
- data/lib/build-tool/cfg/visitor.rb +471 -0
- data/lib/build-tool/commands.rb +639 -0
- data/lib/build-tool/commands/build.rb +120 -0
- data/lib/build-tool/commands/configure.rb +73 -0
- data/lib/build-tool/commands/ctags.rb +46 -0
- data/lib/build-tool/commands/environments.rb +29 -0
- data/lib/build-tool/commands/environments/list.rb +37 -0
- data/lib/build-tool/commands/environments/set.rb +33 -0
- data/lib/build-tool/commands/fetch.rb +50 -0
- data/lib/build-tool/commands/files.rb +73 -0
- data/lib/build-tool/commands/help.rb +22 -0
- data/lib/build-tool/commands/info.rb +48 -0
- data/lib/build-tool/commands/install.rb +56 -0
- data/lib/build-tool/commands/modules.rb +29 -0
- data/lib/build-tool/commands/modules/info.rb +75 -0
- data/lib/build-tool/commands/modules/list.rb +49 -0
- data/lib/build-tool/commands/modules/shell.rb +40 -0
- data/lib/build-tool/commands/rebase.rb +46 -0
- data/lib/build-tool/commands/recipes.rb +32 -0
- data/lib/build-tool/commands/recipes/info.rb +46 -0
- data/lib/build-tool/commands/recipes/install.rb +184 -0
- data/lib/build-tool/commands/recipes/list.rb +33 -0
- data/lib/build-tool/configuration.rb +115 -0
- data/lib/build-tool/environment.rb +119 -0
- data/lib/build-tool/errors.rb +9 -0
- data/lib/build-tool/module.rb +366 -0
- data/lib/build-tool/pluginbase.rb +43 -0
- data/lib/build-tool/recipe.rb +180 -0
- data/lib/build-tool/repository.rb +59 -0
- data/lib/build-tool/server.rb +43 -0
- data/lib/build-tool/singleton.rb +50 -0
- data/lib/build-tool/sshkey.rb +22 -0
- data/lib/build-tool/vcs/base.rb +105 -0
- data/lib/build-tool/vcs/git-svn.rb +154 -0
- data/lib/build-tool/vcs/git.rb +187 -0
- data/lib/build-tool/vcs/svn.rb +136 -0
- data/lib/mj/logging.rb +31 -0
- data/lib/mj/tools/ssh.rb +64 -0
- data/lib/{kde-build → mj/tools}/subprocess.rb +21 -16
- data/lib/mj/visitor.rb +21 -0
- data/recipes/kde/files/finish_installation.sh +16 -0
- data/recipes/kde/files/kde4.desktop +22 -0
- data/recipes/kde/files/xsession +89 -0
- data/recipes/kde/info.yaml +10 -0
- data/recipes/kde/recipe +585 -0
- data/recipes/kde/recipe-local +90 -0
- data/recipes/kde/settings.yaml +52 -0
- data/recipes/kde43/info.yaml +10 -0
- data/recipes/kde43/recipe +256 -0
- data/recipes/kde43/recipe-local +90 -0
- data/recipes/kde43/settings.yaml +32 -0
- data/recipes/kdeqt4.6/custom/qt/qtscriptgenerator/compile.sh +77 -0
- data/recipes/kdeqt4.6/custom/qt/qtscriptgenerator/configure.sh +70 -0
- data/recipes/kdeqt4.6/custom/qt/qtscriptgenerator/install.sh +39 -0
- data/recipes/kdeqt4.6/info.yaml +7 -0
- data/recipes/kdeqt4.6/recipe +155 -0
- data/recipes/kdeqt4.6/recipe-local +30 -0
- data/recipes/kdeqt4.6/settings.yaml +27 -0
- data/tags +745 -0
- data/tasks/genfiles.rake +28 -0
- data/tasks/rdoc.rake +34 -0
- data/tasks/rspec.rake +21 -0
- data/test.rb +28 -0
- data/test/commands/test_build.rb +29 -0
- data/test/test_build_system.rb +98 -0
- data/test/test_cli.rb +61 -0
- data/test/test_command.rb +175 -0
- data/test/test_configuration_parser.rb +542 -0
- data/test/test_environment.rb +82 -0
- data/test/test_helper.rb +39 -7
- data/test/test_module.rb +158 -0
- data/test/test_repository.rb +75 -0
- data/test/test_singleton.rb +51 -0
- data/test/test_ssh_key.rb +14 -0
- data/test/test_svn_parser.rb +28 -0
- data/test/test_vcs.rb +33 -0
- metadata +139 -90
- metadata.gz.sig +0 -0
- data/PostInstall.txt +0 -3
- data/TODO +0 -2
- data/bin/kde-build.rb +0 -21
- data/config/website.yml +0 -2
- data/config/website.yml.sample +0 -2
- data/lib/kde-build.rb +0 -18
- data/lib/kde-build/application.rb +0 -270
- data/lib/kde-build/build_system.rb +0 -28
- data/lib/kde-build/build_system/autoconf.rb +0 -108
- data/lib/kde-build/build_system/base.rb +0 -139
- data/lib/kde-build/build_system/cmake.rb +0 -94
- data/lib/kde-build/build_system/qtcopy.rb +0 -127
- data/lib/kde-build/command.rb +0 -42
- data/lib/kde-build/command/build.rb +0 -106
- data/lib/kde-build/command/compile.rb +0 -39
- data/lib/kde-build/command/configure.rb +0 -48
- data/lib/kde-build/command/ctags.rb +0 -41
- data/lib/kde-build/command/fetch.rb +0 -33
- data/lib/kde-build/command/help.rb +0 -71
- data/lib/kde-build/command/info.rb +0 -45
- data/lib/kde-build/command/install.rb +0 -39
- data/lib/kde-build/command/module_based.rb +0 -44
- data/lib/kde-build/command/rebase.rb +0 -50
- data/lib/kde-build/command/version.rb +0 -43
- data/lib/kde-build/configuration.rb +0 -209
- data/lib/kde-build/exception.rb +0 -6
- data/lib/kde-build/metaaid.rb +0 -18
- data/lib/kde-build/module.rb +0 -227
- data/lib/kde-build/module_configuration.rb +0 -107
- data/lib/kde-build/moduleregistry.rb +0 -85
- data/lib/kde-build/tools/ctags.rb +0 -59
- data/lib/kde-build/tools/logging.rb +0 -49
- data/lib/kde-build/tools/make.rb +0 -58
- data/lib/kde-build/tools/ssh.rb +0 -47
- data/lib/kde-build/vcs.rb +0 -28
- data/lib/kde-build/vcs/base.rb +0 -85
- data/lib/kde-build/vcs/git-svn.rb +0 -139
- data/lib/kde-build/vcs/git.rb +0 -121
- data/lib/kde-build/vcs/svn.rb +0 -102
- data/script/console +0 -10
- data/script/destroy +0 -14
- data/script/generate +0 -14
- data/script/txt2html +0 -71
- data/test.yaml.tmpl +0 -632
- data/test/test_kde-build.rb +0 -11
- data/test/test_vcs_svn.rb +0 -44
- data/website/index.html +0 -84
- data/website/index.txt +0 -59
- data/website/javascripts/rounded_corners_lite.inc.js +0 -285
- data/website/stylesheets/screen.css +0 -159
- data/website/template.html.erb +0 -50
@@ -0,0 +1,542 @@
|
|
1
|
+
require 'pathname'
|
2
|
+
require Pathname.new( File.dirname(__FILE__)).join( 'test_helper' ).cleanpath
|
3
|
+
|
4
|
+
require 'build-tool/cfg/parser'
|
5
|
+
|
6
|
+
class TestConfigurationParser < Test::Unit::TestCase
|
7
|
+
|
8
|
+
def test_build_system
|
9
|
+
text = <<-EOS
|
10
|
+
# Check that build systems are open. You can add to them. by just
|
11
|
+
# redeclaring them
|
12
|
+
build-system cmake
|
13
|
+
option CMAKE_CXXFLAGS "-Wall"
|
14
|
+
option CMAKE_VERBOSE_MAKEFILE "1"
|
15
|
+
end
|
16
|
+
|
17
|
+
# Add a value
|
18
|
+
build-system cmake
|
19
|
+
option CMAKE_BUILD_TYPE "Debug"
|
20
|
+
end
|
21
|
+
|
22
|
+
# Overwrite a value
|
23
|
+
build-system cmake
|
24
|
+
option CMAKE_CXXFLAGS "-Wall -pipe -O0"
|
25
|
+
end
|
26
|
+
EOS
|
27
|
+
parser = BuildTool::Cfg::Parser.new
|
28
|
+
configuration = parser.parse_string(text)
|
29
|
+
|
30
|
+
default = configuration.build_system("cmake")
|
31
|
+
assert_not_nil default
|
32
|
+
assert_equal "-Wall -pipe -O0", default['CMAKE_CXXFLAGS']
|
33
|
+
assert_equal "1", default['CMAKE_VERBOSE_MAKEFILE']
|
34
|
+
assert_equal "Debug", default['CMAKE_BUILD_TYPE']
|
35
|
+
end
|
36
|
+
|
37
|
+
def test_environment
|
38
|
+
text = <<-EOS
|
39
|
+
# Check that environments are open. You can add to them. by just
|
40
|
+
# redeclaring them
|
41
|
+
environment default
|
42
|
+
var PATH set "/usr/bin"
|
43
|
+
var MANPATH set "/usr/share/man"
|
44
|
+
end
|
45
|
+
|
46
|
+
environment default
|
47
|
+
var PATH set "/usr/bin:/bin"
|
48
|
+
var PKG_CONFIG_PATH set "/usr/lib64/pkgconfig"
|
49
|
+
end
|
50
|
+
|
51
|
+
environment copy < default
|
52
|
+
end
|
53
|
+
|
54
|
+
# Test inheritance
|
55
|
+
environment kde4 < default
|
56
|
+
var PATH prepend "/opt/kde4/bin"
|
57
|
+
var MANPATH append "/opt/kde4/share/man"
|
58
|
+
var PKG_CONFIG_PATH set "/opt/kde4/lib64/pkgconfig"
|
59
|
+
end
|
60
|
+
EOS
|
61
|
+
parser = BuildTool::Cfg::Parser.new
|
62
|
+
configuration = parser.parse_string(text)
|
63
|
+
|
64
|
+
default = configuration.environment("default")
|
65
|
+
assert_not_nil default
|
66
|
+
assert_equal "/usr/bin:/bin", default['PATH']
|
67
|
+
assert_equal "/usr/share/man", default['MANPATH']
|
68
|
+
assert_equal "/usr/lib64/pkgconfig", default['PKG_CONFIG_PATH']
|
69
|
+
|
70
|
+
# Copy is just that. a copy
|
71
|
+
copy = configuration.environment("copy")
|
72
|
+
assert_not_nil copy
|
73
|
+
assert_equal default['PATH'], copy['PATH']
|
74
|
+
assert_equal default['MANPATH'], copy['MANPATH']
|
75
|
+
assert_equal default['PKG_CONFIG_PATH'], copy['PKG_CONFIG_PATH']
|
76
|
+
|
77
|
+
# kde4 add to default
|
78
|
+
kde4 = configuration.environment("kde4")
|
79
|
+
assert_not_nil kde4
|
80
|
+
assert_equal "/opt/kde4/bin:/usr/bin:/bin", kde4['PATH']
|
81
|
+
assert_equal "/usr/share/man:/opt/kde4/share/man", kde4['MANPATH']
|
82
|
+
assert_equal "/opt/kde4/lib64/pkgconfig", kde4['PKG_CONFIG_PATH']
|
83
|
+
end
|
84
|
+
|
85
|
+
def test_repository
|
86
|
+
text = <<-EOS
|
87
|
+
server kde
|
88
|
+
protocol "svn+ssh"
|
89
|
+
host "svn.kde.org"
|
90
|
+
end
|
91
|
+
|
92
|
+
repository kde
|
93
|
+
server kde
|
94
|
+
path "KDE"
|
95
|
+
end
|
96
|
+
|
97
|
+
repository kde
|
98
|
+
user mjansen
|
99
|
+
end
|
100
|
+
|
101
|
+
server kde
|
102
|
+
protocol "svn+ssh"
|
103
|
+
host "svn.kde.org"
|
104
|
+
path "home/kde"
|
105
|
+
end
|
106
|
+
EOS
|
107
|
+
parser = BuildTool::Cfg::Parser.new
|
108
|
+
configuration = parser.parse_string(text)
|
109
|
+
|
110
|
+
default = configuration.repository("kde")
|
111
|
+
assert_not_nil default
|
112
|
+
assert_equal "svn+ssh", default.server.protocol
|
113
|
+
assert_equal "svn.kde.org", default.server.host
|
114
|
+
assert_equal "home/kde", default.server.path
|
115
|
+
assert_equal "mjansen", default.user
|
116
|
+
assert_equal "KDE", default.path
|
117
|
+
assert_equal "svn+ssh://mjansen@svn.kde.org/home/kde/KDE", default.url
|
118
|
+
end
|
119
|
+
|
120
|
+
def test_module
|
121
|
+
text = <<-EOS
|
122
|
+
environment kdelibs end
|
123
|
+
|
124
|
+
server kde
|
125
|
+
protocol "svn+ssh"
|
126
|
+
host "svn.kde.org"
|
127
|
+
end
|
128
|
+
|
129
|
+
repository kde
|
130
|
+
server kde
|
131
|
+
path "/home/kde"
|
132
|
+
end
|
133
|
+
|
134
|
+
repository kde-core
|
135
|
+
server kde
|
136
|
+
path "/home/kde"
|
137
|
+
end
|
138
|
+
|
139
|
+
module kdelibs
|
140
|
+
use environment kdelibs
|
141
|
+
use repository kde-core
|
142
|
+
use vcs git-svn
|
143
|
+
local-path "kdelibs"
|
144
|
+
end
|
145
|
+
|
146
|
+
module kdelibs
|
147
|
+
remote-path "kdelibs2"
|
148
|
+
use repository kde
|
149
|
+
build-prefix "/build/kde"
|
150
|
+
end
|
151
|
+
EOS
|
152
|
+
parser = BuildTool::Cfg::Parser.new
|
153
|
+
configuration = parser.parse_string(text)
|
154
|
+
|
155
|
+
kdelibs = configuration.module("kdelibs")
|
156
|
+
assert_not_nil kdelibs
|
157
|
+
assert_equal "kdelibs", kdelibs.name
|
158
|
+
assert_not_nil kdelibs.repository
|
159
|
+
assert_equal "kde", kdelibs.repository.name
|
160
|
+
assert_equal "kdelibs", kdelibs.environment.name
|
161
|
+
assert_equal "kdelibs", kdelibs.local_path
|
162
|
+
assert_equal "kdelibs2", kdelibs.remote_path
|
163
|
+
assert_equal "/build/kde/src/kdelibs", kdelibs.source_directory
|
164
|
+
assert_equal "/build/kde/bld/kdelibs", kdelibs.build_directory
|
165
|
+
assert_equal "/build/kde/src/kdelibs", kdelibs.vcs.local_path
|
166
|
+
end
|
167
|
+
|
168
|
+
def test_module_inheritance
|
169
|
+
text = <<-EOS
|
170
|
+
environment kdelibs end
|
171
|
+
|
172
|
+
server kde
|
173
|
+
protocol "svn+ssh"
|
174
|
+
host "svn.kde.org"
|
175
|
+
end
|
176
|
+
|
177
|
+
repository kde
|
178
|
+
server kde
|
179
|
+
path "/home"
|
180
|
+
user mjansen
|
181
|
+
end
|
182
|
+
|
183
|
+
module kdelibs
|
184
|
+
use environment kdelibs
|
185
|
+
use repository kde
|
186
|
+
use build-system cmake
|
187
|
+
use vcs git-svn
|
188
|
+
local-path "kdelibs"
|
189
|
+
end
|
190
|
+
|
191
|
+
# test inheritance
|
192
|
+
module kdebase-runtime < kdelibs
|
193
|
+
end
|
194
|
+
|
195
|
+
module kdebase-workspace < kdebase-runtime
|
196
|
+
use vcs svn
|
197
|
+
environment kdebase end
|
198
|
+
end
|
199
|
+
|
200
|
+
module kdelibs_copy < kdelibs
|
201
|
+
use vcs svn
|
202
|
+
end
|
203
|
+
|
204
|
+
module kdelibs
|
205
|
+
remote-path "kdelibs2"
|
206
|
+
build-prefix "/build/kde"
|
207
|
+
end
|
208
|
+
EOS
|
209
|
+
parser = BuildTool::Cfg::Parser.new
|
210
|
+
configuration = parser.parse_string(text)
|
211
|
+
|
212
|
+
kdelibs = configuration.module("kdelibs")
|
213
|
+
assert_not_nil kdelibs
|
214
|
+
assert_equal "kdelibs", kdelibs.name
|
215
|
+
assert_equal "kde", kdelibs.repository.name
|
216
|
+
assert_equal "kdelibs", kdelibs.environment.name
|
217
|
+
assert_equal "kdelibs", kdelibs.local_path
|
218
|
+
assert_equal "kdelibs2", kdelibs.remote_path
|
219
|
+
assert_equal "/build/kde/src/kdelibs", kdelibs.source_directory
|
220
|
+
assert_equal "/build/kde/bld/kdelibs", kdelibs.build_directory
|
221
|
+
assert_equal "/build/kde/src/kdelibs", kdelibs.vcs.local_path
|
222
|
+
|
223
|
+
mod = configuration.module("kdebase-runtime")
|
224
|
+
assert_not_nil mod
|
225
|
+
assert_equal "kdebase-runtime", mod.name
|
226
|
+
assert_equal kdelibs.repository, mod.repository
|
227
|
+
assert_equal kdelibs.build_prefix, mod.build_prefix
|
228
|
+
assert_equal kdelibs.repository.name, mod.repository.name
|
229
|
+
assert_equal kdelibs.environment.name, mod.environment.name
|
230
|
+
# Those are not inherited and fall back to module name
|
231
|
+
assert_equal "kdebase-runtime", mod.local_path
|
232
|
+
assert_equal "kdebase-runtime", mod.remote_path
|
233
|
+
assert_equal "/build/kde/src/kdebase-runtime", mod.source_directory
|
234
|
+
assert_equal "/build/kde/bld/kdebase-runtime", mod.build_directory
|
235
|
+
assert_equal "/build/kde/src/kdebase-runtime", mod.vcs.local_path
|
236
|
+
# Check we work on a copy
|
237
|
+
assert_equal "/build/kde/src/kdelibs", kdelibs.vcs.local_path
|
238
|
+
|
239
|
+
mod = configuration.module("kdebase-workspace")
|
240
|
+
assert_not_nil mod
|
241
|
+
assert_equal "kdebase-workspace", mod.name
|
242
|
+
assert_equal "kdebase", mod.environment.name
|
243
|
+
assert_equal "svn", mod.vcs.name
|
244
|
+
|
245
|
+
kdelibs = configuration.module("kdelibs_copy")
|
246
|
+
assert_not_nil kdelibs
|
247
|
+
assert_equal "kdelibs_copy", kdelibs.name
|
248
|
+
assert_equal "kde", kdelibs.repository.name
|
249
|
+
assert_equal "kdelibs", kdelibs.environment.name
|
250
|
+
assert_equal "kdelibs_copy", kdelibs.local_path
|
251
|
+
assert_equal "kdelibs_copy", kdelibs.remote_path
|
252
|
+
assert_equal "/build/kde/src/kdelibs_copy", kdelibs.source_directory
|
253
|
+
assert_equal "/build/kde/bld/kdelibs_copy", kdelibs.build_directory
|
254
|
+
assert_equal "/build/kde/src/kdelibs_copy", kdelibs.vcs.local_path
|
255
|
+
|
256
|
+
end
|
257
|
+
|
258
|
+
def test_existing_configuration
|
259
|
+
|
260
|
+
parser = BuildTool::Cfg::Parser.new
|
261
|
+
|
262
|
+
text = <<-EOS
|
263
|
+
environment kdelibs end
|
264
|
+
|
265
|
+
server kde
|
266
|
+
protocol "svn+ssh"
|
267
|
+
host "svn.kde.org"
|
268
|
+
end
|
269
|
+
|
270
|
+
repository kde
|
271
|
+
server kde
|
272
|
+
path "/home"
|
273
|
+
user mjansen
|
274
|
+
end
|
275
|
+
|
276
|
+
module kdelibs
|
277
|
+
use environment kdelibs
|
278
|
+
use repository kde
|
279
|
+
use vcs git-svn
|
280
|
+
local-path "kdelibs"
|
281
|
+
remote-path "kdelibs2"
|
282
|
+
build-prefix "/build/kde"
|
283
|
+
end
|
284
|
+
EOS
|
285
|
+
configuration = parser.parse_string(text)
|
286
|
+
|
287
|
+
kdelibs = configuration.module("kdelibs")
|
288
|
+
assert_not_nil kdelibs
|
289
|
+
assert_equal "kdelibs", kdelibs.name
|
290
|
+
assert_not_nil kdelibs.repository
|
291
|
+
assert_equal "kde", kdelibs.repository.name
|
292
|
+
assert_equal "kdelibs", kdelibs.environment.name
|
293
|
+
assert_equal "kdelibs", kdelibs.local_path
|
294
|
+
assert_equal "kdelibs2", kdelibs.remote_path
|
295
|
+
assert_equal "/build/kde/src/kdelibs", kdelibs.source_directory
|
296
|
+
assert_equal "/build/kde/bld/kdelibs", kdelibs.build_directory
|
297
|
+
assert_equal "/build/kde/src/kdelibs", kdelibs.vcs.local_path
|
298
|
+
|
299
|
+
text2 = <<-EOS
|
300
|
+
environment kde2 end
|
301
|
+
|
302
|
+
# Change one aspect of kdelibs
|
303
|
+
module kdelibs
|
304
|
+
use environment kde2
|
305
|
+
end
|
306
|
+
|
307
|
+
server kde
|
308
|
+
protocol "svn+ssh"
|
309
|
+
host "svn.kde.org"
|
310
|
+
end
|
311
|
+
|
312
|
+
# Change the kde repository
|
313
|
+
repository kde
|
314
|
+
server kde
|
315
|
+
path "/home"
|
316
|
+
user meier
|
317
|
+
end
|
318
|
+
|
319
|
+
# test inheritance
|
320
|
+
module kdebase-runtime < kdelibs
|
321
|
+
end
|
322
|
+
|
323
|
+
module kdebase-workspace < kdebase-runtime
|
324
|
+
use vcs svn
|
325
|
+
environment kdebase end
|
326
|
+
end
|
327
|
+
EOS
|
328
|
+
parser = BuildTool::Cfg::Parser.new( configuration )
|
329
|
+
configuration = parser.parse_string( text2 )
|
330
|
+
|
331
|
+
kdelibs = configuration.module("kdelibs")
|
332
|
+
assert_not_nil kdelibs
|
333
|
+
assert_equal "kdelibs", kdelibs.name
|
334
|
+
assert_not_nil kdelibs.repository
|
335
|
+
assert_equal "kde", kdelibs.repository.name
|
336
|
+
assert_equal "kde2", kdelibs.environment.name
|
337
|
+
assert_equal "kdelibs", kdelibs.local_path
|
338
|
+
assert_equal "kdelibs2", kdelibs.remote_path
|
339
|
+
assert_equal "/build/kde/src/kdelibs", kdelibs.source_directory
|
340
|
+
assert_equal "/build/kde/bld/kdelibs", kdelibs.build_directory
|
341
|
+
assert_equal "/build/kde/src/kdelibs", kdelibs.vcs.local_path
|
342
|
+
assert_equal "meier", kdelibs.repository.user
|
343
|
+
|
344
|
+
mod = configuration.module("kdebase-runtime")
|
345
|
+
assert_not_nil mod
|
346
|
+
assert_equal "kdebase-runtime", mod.name
|
347
|
+
assert_equal kdelibs.repository, mod.repository
|
348
|
+
assert_equal kdelibs.build_prefix, mod.build_prefix
|
349
|
+
assert_equal kdelibs.repository.name, mod.repository.name
|
350
|
+
assert_equal kdelibs.environment.name, mod.environment.name
|
351
|
+
# Those are not inherited and fall back to module name
|
352
|
+
assert_equal "kdebase-runtime", mod.local_path
|
353
|
+
assert_equal "kdebase-runtime", mod.remote_path
|
354
|
+
assert_equal "/build/kde/src/kdebase-runtime", mod.source_directory
|
355
|
+
assert_equal "/build/kde/bld/kdebase-runtime", mod.build_directory
|
356
|
+
assert_equal "/build/kde/src/kdebase-runtime", mod.vcs.local_path
|
357
|
+
# Check we work on a copy
|
358
|
+
assert_equal "/build/kde/src/kdelibs", kdelibs.vcs.local_path
|
359
|
+
|
360
|
+
mod = configuration.module("kdebase-workspace")
|
361
|
+
assert_not_nil mod
|
362
|
+
assert_equal "kdebase-workspace", mod.name
|
363
|
+
assert_equal "kdebase", mod.environment.name
|
364
|
+
assert_equal "svn", mod.vcs.name
|
365
|
+
end
|
366
|
+
|
367
|
+
def test_sshkeys
|
368
|
+
text = <<-EOS
|
369
|
+
ssh-key "user@userdomain.example"
|
370
|
+
file "~/.ssh/id_dsa"
|
371
|
+
end
|
372
|
+
|
373
|
+
ssh-key "user_other_email@userdomain.example"
|
374
|
+
file "~/.ssh/id_other_email_dsa"
|
375
|
+
end
|
376
|
+
EOS
|
377
|
+
parser = BuildTool::Cfg::Parser.new
|
378
|
+
configuration = parser.parse_string(text)
|
379
|
+
|
380
|
+
default = configuration.sshkey("user@userdomain.example")
|
381
|
+
assert_not_nil default
|
382
|
+
assert_equal File.expand_path( "~/.ssh/id_dsa" ), default.file
|
383
|
+
|
384
|
+
other = configuration.sshkey("user_other_email@userdomain.example")
|
385
|
+
assert_not_nil other
|
386
|
+
assert_equal File.expand_path( "~/.ssh/id_other_email_dsa" ), other.file
|
387
|
+
end
|
388
|
+
|
389
|
+
def test_template
|
390
|
+
text = <<-EOS
|
391
|
+
environment kdelibs end
|
392
|
+
|
393
|
+
server kde
|
394
|
+
protocol "svn+ssh"
|
395
|
+
host "svn.kde.org"
|
396
|
+
end
|
397
|
+
|
398
|
+
repository kde
|
399
|
+
server kde
|
400
|
+
path "/home"
|
401
|
+
user mjansen
|
402
|
+
end
|
403
|
+
|
404
|
+
module kdelibstemplate TEMPLATE
|
405
|
+
use environment kdelibs
|
406
|
+
use repository kde
|
407
|
+
use vcs git-svn
|
408
|
+
build-prefix "/build/kde"
|
409
|
+
end
|
410
|
+
|
411
|
+
module kdelibs < kdelibstemplate end
|
412
|
+
EOS
|
413
|
+
parser = BuildTool::Cfg::Parser.new
|
414
|
+
configuration = parser.parse_string(text)
|
415
|
+
|
416
|
+
kdelibs = configuration.module("kdelibs")
|
417
|
+
assert_not_nil kdelibs
|
418
|
+
assert_equal "kdelibs", kdelibs.name
|
419
|
+
assert_not_nil kdelibs.repository
|
420
|
+
assert_equal "kde", kdelibs.repository.name
|
421
|
+
assert_equal "kdelibs", kdelibs.environment.name
|
422
|
+
assert_equal "kdelibs", kdelibs.local_path
|
423
|
+
assert_equal "kdelibs", kdelibs.remote_path
|
424
|
+
assert_equal "/build/kde/src/kdelibs", kdelibs.source_directory
|
425
|
+
assert_equal "/build/kde/bld/kdelibs", kdelibs.build_directory
|
426
|
+
assert_equal "/build/kde/src/kdelibs", kdelibs.vcs.local_path
|
427
|
+
end
|
428
|
+
|
429
|
+
# Just test that a complete configuration file with all parts is read
|
430
|
+
def test_complete
|
431
|
+
text = <<-EOS
|
432
|
+
ssh-key "user@userdomain.example"
|
433
|
+
file "~/.ssh/id_dsa"
|
434
|
+
end
|
435
|
+
|
436
|
+
build-system cmake
|
437
|
+
option CMAKE_CXXFLAGS "-Wall -pipe -O0"
|
438
|
+
option CMAKE_VERBOSE_MAKEFILE "1"
|
439
|
+
option CMAKE_BUILD_TYPE "Debug"
|
440
|
+
end
|
441
|
+
|
442
|
+
build-system qt
|
443
|
+
option flags ""
|
444
|
+
end
|
445
|
+
|
446
|
+
server kde
|
447
|
+
protocol "svn+ssh"
|
448
|
+
host "svn.kde.org"
|
449
|
+
end
|
450
|
+
|
451
|
+
repository kde
|
452
|
+
server kde
|
453
|
+
path "/home"
|
454
|
+
user mjansen
|
455
|
+
end
|
456
|
+
|
457
|
+
environment default
|
458
|
+
var PATH set "/usr/bin:/bin"
|
459
|
+
var MANPATH set "/usr/share/man"
|
460
|
+
var KDEDIRS set ""
|
461
|
+
var PKG_CONFIG_PATH set "/usr/lib64/pkgconfig"
|
462
|
+
var LD_LIBRARY_PATH set ""
|
463
|
+
end
|
464
|
+
|
465
|
+
environment kdesupport < default
|
466
|
+
var PATH prepend "/opt/kde/support/bin"
|
467
|
+
var MANPATH append "/opt/kde/support/share/man"
|
468
|
+
var KDEDIRS set "/opt/kde/support"
|
469
|
+
var PKG_CONFIG_PATH prepend "/opt/kde/support/lib64/pkgconfig"
|
470
|
+
end
|
471
|
+
|
472
|
+
module kdesupport
|
473
|
+
use environment kdesupport
|
474
|
+
use repository kde
|
475
|
+
end
|
476
|
+
|
477
|
+
|
478
|
+
module kdelibs
|
479
|
+
|
480
|
+
environment kdelibs < kdesupport
|
481
|
+
var PATH prepend "/opt/kde/libs/bin"
|
482
|
+
var MANPATH append "/opt/kde/libs/share/man"
|
483
|
+
var KDEDIRS prepend "/opt/kde/libs"
|
484
|
+
var PKG_CONFIG_PATH prepend "/opt/kde/libs/lib64/pkgconfig"
|
485
|
+
end
|
486
|
+
|
487
|
+
use repository kde
|
488
|
+
use build-system cmake
|
489
|
+
vcs git-svn
|
490
|
+
external "kwin/clients/nitrogen/lib#<%= KDESVNSERVER %>/kde/trunk/KDE/kdebase/runtime/kstyles/oxygen/lib"
|
491
|
+
external "kwin/clients/oxygen/lib#<%= KDESVNSERVER %>/kde/trunk/KDE/kdebase/runtime/kstyles/oxygen/lib"
|
492
|
+
end
|
493
|
+
|
494
|
+
remote-path "KDE/kdelibs"
|
495
|
+
local-path "KDE/kdelibs"
|
496
|
+
install-prefix "/opt/kde/libs"
|
497
|
+
build-prefix "~"
|
498
|
+
|
499
|
+
end
|
500
|
+
|
501
|
+
environment kdepimlibs < kdesupport
|
502
|
+
var PATH prepend "/opt/kde/pimlibs/bin"
|
503
|
+
var MANPATH append "/opt/kde/pimlibs/share/man"
|
504
|
+
var KDEDIRS prepend "/opt/kde/pimlibs"
|
505
|
+
var PKG_CONFIG_PATH prepend "/opt/kde/pimlibs/lib64/pkgconfig"
|
506
|
+
end
|
507
|
+
|
508
|
+
module kdepimlibs
|
509
|
+
use environment kdepimlibs
|
510
|
+
use repository kde
|
511
|
+
end
|
512
|
+
|
513
|
+
environment kdebase < kdelibs
|
514
|
+
var PATH prepend "/opt/kde/base/bin"
|
515
|
+
var MANPATH append "/opt/kde/base/share/man"
|
516
|
+
var KDEDIRS prepend "/opt/kde/base"
|
517
|
+
var PKG_CONFIG_PATH prepend "/opt/kde/base/lib64/pkgconfig"
|
518
|
+
end
|
519
|
+
|
520
|
+
module kdebase
|
521
|
+
use environment kdebase
|
522
|
+
use repository kde
|
523
|
+
end
|
524
|
+
EOS
|
525
|
+
parser = BuildTool::Cfg::Parser.new
|
526
|
+
configuration = parser.parse_string(text)
|
527
|
+
kdelibs = configuration.module("kdelibs")
|
528
|
+
|
529
|
+
assert_not_nil kdelibs
|
530
|
+
assert_equal "KDE/kdelibs", kdelibs.remote_path
|
531
|
+
assert_equal "KDE/kdelibs", kdelibs.local_path
|
532
|
+
assert_equal "/opt/kde/libs", kdelibs.install_prefix.to_s
|
533
|
+
assert_not_nil kdelibs.vcs
|
534
|
+
assert_equal "git-svn", kdelibs.vcs.name
|
535
|
+
|
536
|
+
assert_same configuration.repository("kde"), kdelibs.repository
|
537
|
+
assert_same configuration.environment("kdelibs"), kdelibs.environment
|
538
|
+
|
539
|
+
assert_equal "/opt/kde/libs/bin:/opt/kde/support/bin:/usr/bin:/bin", configuration.environment("kdelibs")["PATH"]
|
540
|
+
end
|
541
|
+
|
542
|
+
end
|