autoproj 1.13.7 → 2.0.0.b1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gemtest +0 -0
- data/Manifest.txt +27 -21
- data/Rakefile +4 -6
- data/bin/alocate +5 -1
- data/bin/amake +3 -53
- data/bin/aup +3 -50
- data/bin/autoproj +3 -264
- data/bin/autoproj_bootstrap +294 -349
- data/bin/autoproj_bootstrap.in +27 -3
- data/lib/autoproj.rb +23 -1
- data/lib/autoproj/autobuild.rb +51 -89
- data/lib/autoproj/base.rb +0 -9
- data/lib/autoproj/build_option.rb +1 -3
- data/lib/autoproj/cli.rb +1 -0
- data/lib/autoproj/cli/base.rb +155 -0
- data/lib/autoproj/cli/bootstrap.rb +119 -0
- data/lib/autoproj/cli/build.rb +72 -0
- data/lib/autoproj/cli/cache.rb +31 -0
- data/lib/autoproj/cli/clean.rb +37 -0
- data/lib/autoproj/cli/commit.rb +41 -0
- data/lib/autoproj/cli/doc.rb +22 -0
- data/lib/autoproj/cli/envsh.rb +22 -0
- data/lib/autoproj/cli/inspection_tool.rb +73 -0
- data/lib/autoproj/cli/locate.rb +96 -0
- data/lib/autoproj/cli/log.rb +26 -0
- data/lib/autoproj/cli/main.rb +249 -0
- data/lib/autoproj/cli/main_test.rb +57 -0
- data/lib/autoproj/cli/osdeps.rb +30 -0
- data/lib/autoproj/cli/query.rb +43 -0
- data/lib/autoproj/cli/reconfigure.rb +19 -0
- data/lib/autoproj/cli/reset.rb +7 -32
- data/lib/autoproj/cli/show.rb +219 -0
- data/lib/autoproj/cli/snapshot.rb +1 -1
- data/lib/autoproj/cli/status.rb +149 -0
- data/lib/autoproj/cli/switch_config.rb +28 -0
- data/lib/autoproj/cli/tag.rb +9 -35
- data/lib/autoproj/cli/test.rb +34 -55
- data/lib/autoproj/cli/update.rb +158 -0
- data/lib/autoproj/cli/versions.rb +32 -69
- data/lib/autoproj/configuration.rb +95 -34
- data/lib/autoproj/default.osdeps +25 -35
- data/lib/autoproj/environment.rb +85 -63
- data/lib/autoproj/exceptions.rb +50 -0
- data/lib/autoproj/gitorious.rb +11 -9
- data/lib/autoproj/manifest.rb +199 -231
- data/lib/autoproj/metapackage.rb +0 -8
- data/lib/autoproj/ops/build.rb +1 -17
- data/lib/autoproj/ops/configuration.rb +92 -90
- data/lib/autoproj/ops/import.rb +222 -0
- data/lib/autoproj/ops/loader.rb +18 -8
- data/lib/autoproj/ops/main_config_switcher.rb +45 -73
- data/lib/autoproj/ops/snapshot.rb +5 -10
- data/lib/autoproj/ops/tools.rb +10 -44
- data/lib/autoproj/options.rb +35 -6
- data/lib/autoproj/osdeps.rb +97 -68
- data/lib/autoproj/package_selection.rb +39 -20
- data/lib/autoproj/package_set.rb +26 -24
- data/lib/autoproj/reporter.rb +91 -0
- data/lib/autoproj/system.rb +50 -149
- data/lib/autoproj/variable_expansion.rb +32 -6
- data/lib/autoproj/vcs_definition.rb +57 -17
- data/lib/autoproj/version.rb +1 -1
- data/lib/autoproj/workspace.rb +550 -0
- data/test/ops/test_snapshot.rb +26 -0
- data/test/test_package.rb +30 -0
- data/test/test_vcs_definition.rb +46 -0
- metadata +55 -50
- data/bin/autolocate +0 -3
- data/bin/autoproj-bootstrap +0 -68
- data/bin/autoproj-cache +0 -18
- data/bin/autoproj-clean +0 -13
- data/bin/autoproj-commit +0 -10
- data/bin/autoproj-create-set +0 -118
- data/bin/autoproj-doc +0 -28
- data/bin/autoproj-envsh +0 -14
- data/bin/autoproj-list +0 -69
- data/bin/autoproj-locate +0 -85
- data/bin/autoproj-log +0 -5
- data/bin/autoproj-query +0 -82
- data/bin/autoproj-reset +0 -13
- data/bin/autoproj-show +0 -192
- data/bin/autoproj-snapshot +0 -27
- data/bin/autoproj-switch-config +0 -24
- data/bin/autoproj-tag +0 -13
- data/bin/autoproj-test +0 -31
- data/bin/autoproj-versions +0 -20
- data/bin/autoproj_stress_test +0 -40
- data/lib/autoproj/cmdline.rb +0 -1649
@@ -14,12 +14,15 @@ module Autoproj
|
|
14
14
|
attr_reader :declared_options
|
15
15
|
# The options that have already been shown to the user
|
16
16
|
attr_reader :displayed_options
|
17
|
+
# The path to the underlying configuration file
|
18
|
+
attr_reader :path
|
17
19
|
|
18
|
-
def initialize
|
20
|
+
def initialize(path = nil)
|
19
21
|
@config = Hash.new
|
20
22
|
@overrides = Hash.new
|
21
23
|
@declared_options = Hash.new
|
22
24
|
@displayed_options = Hash.new
|
25
|
+
@path = path
|
23
26
|
end
|
24
27
|
|
25
28
|
# Deletes the current value for an option
|
@@ -58,14 +61,14 @@ module Autoproj
|
|
58
61
|
end
|
59
62
|
|
60
63
|
# Get the value for a given option
|
61
|
-
def get(key, default_value
|
64
|
+
def get(key, *default_value)
|
62
65
|
if overrides.has_key?(key)
|
63
66
|
return overrides[key]
|
64
67
|
end
|
65
68
|
|
66
69
|
value, validated = config[key]
|
67
|
-
if value.nil? && !declared?(key) && !default_value.
|
68
|
-
default_value
|
70
|
+
if value.nil? && !declared?(key) && !default_value.empty?
|
71
|
+
default_value.first
|
69
72
|
elsif value.nil? || (declared?(key) && !validated)
|
70
73
|
value = configure(key)
|
71
74
|
else
|
@@ -141,15 +144,27 @@ module Autoproj
|
|
141
144
|
end
|
142
145
|
end
|
143
146
|
|
144
|
-
def load(
|
145
|
-
|
147
|
+
def load(options = Hash.new)
|
148
|
+
options = validate_options options,
|
149
|
+
path: self.path,
|
150
|
+
reconfigure: false
|
151
|
+
|
152
|
+
if h = YAML.load(File.read(options[:path]))
|
146
153
|
h.each do |key, value|
|
147
|
-
set(key, value, !reconfigure)
|
154
|
+
set(key, value, !options[:reconfigure])
|
148
155
|
end
|
149
156
|
end
|
150
157
|
end
|
151
158
|
|
152
|
-
def
|
159
|
+
def reconfigure!
|
160
|
+
new_config = Hash.new
|
161
|
+
config.each do |key, (value, user_validated)|
|
162
|
+
new_config[key] = [value, false]
|
163
|
+
end
|
164
|
+
@config = new_config
|
165
|
+
end
|
166
|
+
|
167
|
+
def save(path = self.path)
|
153
168
|
File.open(path, "w") do |io|
|
154
169
|
h = Hash.new
|
155
170
|
config.each do |key, value|
|
@@ -176,17 +191,13 @@ module Autoproj
|
|
176
191
|
end
|
177
192
|
|
178
193
|
def ruby_executable
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
# For Autoproj 2.0 forward compatibility
|
188
|
-
def shell_helpers=(flag)
|
189
|
-
Autoproj.shell_helpers = flag
|
194
|
+
if path = get('ruby_executable', nil)
|
195
|
+
path
|
196
|
+
else
|
197
|
+
path = OSDependencies.autodetect_ruby_program
|
198
|
+
set('ruby_executable', path, true)
|
199
|
+
path
|
200
|
+
end
|
190
201
|
end
|
191
202
|
|
192
203
|
def validate_ruby_executable
|
@@ -210,6 +221,14 @@ module Autoproj
|
|
210
221
|
use_prerelease
|
211
222
|
end
|
212
223
|
|
224
|
+
def shell_helpers?
|
225
|
+
get 'shell_helpers', true
|
226
|
+
end
|
227
|
+
|
228
|
+
def shell_helpers=(flag)
|
229
|
+
set 'shell_helpers', flag, true
|
230
|
+
end
|
231
|
+
|
213
232
|
def apply_autobuild_configuration
|
214
233
|
if has_value_for?('autobuild')
|
215
234
|
params = get('autobuild')
|
@@ -221,11 +240,46 @@ module Autoproj
|
|
221
240
|
end
|
222
241
|
end
|
223
242
|
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
243
|
+
# The directory in which packages will be installed.
|
244
|
+
#
|
245
|
+
# If it is a relative path, it is relative to the root dir of the
|
246
|
+
# installation.
|
247
|
+
#
|
248
|
+
# The default is "install"
|
249
|
+
#
|
250
|
+
# @return [String]
|
251
|
+
def prefix_dir
|
252
|
+
get('prefix', 'install')
|
253
|
+
end
|
254
|
+
|
255
|
+
# Defines the temporary area in which packages should put their build
|
256
|
+
# files
|
257
|
+
#
|
258
|
+
# If absolute, it is handled as {#prefix_dir}: the package name will be
|
259
|
+
# appended to it. If relative, it is relative to the package's source
|
260
|
+
# directory
|
261
|
+
#
|
262
|
+
# The default is "build"
|
263
|
+
#
|
264
|
+
# @return [String]
|
265
|
+
def build_dir
|
266
|
+
get('build', 'build')
|
267
|
+
end
|
268
|
+
|
269
|
+
# Returns true if there should be one prefix per package
|
270
|
+
#
|
271
|
+
# The default is false (disabled)
|
272
|
+
#
|
273
|
+
# @return [Boolean]
|
274
|
+
def separate_prefixes?
|
275
|
+
get('separate_prefixes', false)
|
276
|
+
end
|
277
|
+
|
278
|
+
# Controls whether there should be one prefix per package
|
279
|
+
#
|
280
|
+
# @see separate_prefixes?
|
281
|
+
def separate_prefixes=(flag)
|
282
|
+
set('separate_prefixes', flag, true)
|
229
283
|
end
|
230
284
|
|
231
285
|
# Returns true if packages and prefixes should be auto-generated, based
|
@@ -292,17 +346,17 @@ module Autoproj
|
|
292
346
|
set("#{utility_key(utility)}_default", true)
|
293
347
|
end
|
294
348
|
|
295
|
-
# Enables a utility for a
|
296
|
-
#
|
297
|
-
# Note that if the default for this utility is to be enabled, this is
|
298
|
-
# essentially a no-op.
|
349
|
+
# Enables a utility for a set of packages
|
299
350
|
#
|
300
351
|
# @param [String] utility the utility name (e.g. 'doc' or 'test')
|
301
|
-
# @param [String]
|
352
|
+
# @param [String] packages the package names
|
302
353
|
# @return [void]
|
303
|
-
def
|
354
|
+
def utility_enable(utility, *packages)
|
304
355
|
utility_config = get(utility_key(utility), Hash.new)
|
305
|
-
|
356
|
+
packages.each do |pkg_name|
|
357
|
+
utility_config[pkg_name] = true
|
358
|
+
end
|
359
|
+
set(utility_key(utility), utility_config)
|
306
360
|
end
|
307
361
|
|
308
362
|
# Disables a utility for all packages
|
@@ -324,11 +378,18 @@ module Autoproj
|
|
324
378
|
# essentially a no-op.
|
325
379
|
#
|
326
380
|
# @param [String] utility the utility name (e.g. 'doc' or 'test')
|
327
|
-
# @param [String]
|
381
|
+
# @param [String] packages the package names
|
328
382
|
# @return [void]
|
329
|
-
def
|
383
|
+
def utility_disable(utility, *packages)
|
330
384
|
utility_config = get(utility_key(utility), Hash.new)
|
331
|
-
|
385
|
+
packages.each do |pkg_name|
|
386
|
+
utility_config[pkg_name] = false
|
387
|
+
end
|
388
|
+
set(utility_key(utility), utility_config)
|
389
|
+
end
|
390
|
+
|
391
|
+
def merge(conf)
|
392
|
+
config.merge!(conf.config)
|
332
393
|
end
|
333
394
|
end
|
334
395
|
end
|
data/lib/autoproj/default.osdeps
CHANGED
@@ -2,6 +2,13 @@
|
|
2
2
|
none: ignore
|
3
3
|
|
4
4
|
ruby19:
|
5
|
+
debian:
|
6
|
+
- ruby1.9.1
|
7
|
+
- ruby1.9.1-dev
|
8
|
+
- rubygems1.9.1
|
9
|
+
- rake
|
10
|
+
- rubygems-integration
|
11
|
+
|
5
12
|
ubuntu:
|
6
13
|
'12.04':
|
7
14
|
- ruby1.9.1
|
@@ -10,7 +17,17 @@ ruby19:
|
|
10
17
|
- ri1.9.1
|
11
18
|
- libopenssl-ruby1.9.1
|
12
19
|
- rake
|
13
|
-
default:
|
20
|
+
default:
|
21
|
+
- ruby1.9.1
|
22
|
+
- ruby1.9.1-dev
|
23
|
+
- rubygems1.9.1
|
24
|
+
- ri1.9.1
|
25
|
+
- libopenssl-ruby1.9.1
|
26
|
+
- rake
|
27
|
+
- rubygems-integration
|
28
|
+
gentoo:
|
29
|
+
- dev-lang/ruby:1.9
|
30
|
+
- rake
|
14
31
|
fedora:
|
15
32
|
"17":
|
16
33
|
- ruby
|
@@ -47,13 +64,12 @@ ruby20:
|
|
47
64
|
|
48
65
|
ruby21:
|
49
66
|
debian:
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
- rubygems-integration
|
67
|
+
- ruby2.1
|
68
|
+
- ruby2.1-dev
|
69
|
+
- rake
|
70
|
+
- rubygems-integration
|
55
71
|
ubuntu:
|
56
|
-
'14.10
|
72
|
+
'14.10':
|
57
73
|
- ruby2.1
|
58
74
|
- ruby2.1-dev
|
59
75
|
- rake
|
@@ -64,31 +80,6 @@ ruby21:
|
|
64
80
|
- gem: rake
|
65
81
|
default: ignore # we assume that if the user has a ruby 2.1 runtime, it is usable
|
66
82
|
|
67
|
-
ruby22:
|
68
|
-
ubuntu:
|
69
|
-
'15.10':
|
70
|
-
- ruby2.2
|
71
|
-
- ruby2.2-dev
|
72
|
-
- rake
|
73
|
-
- rubygems-integration
|
74
|
-
default: ignore
|
75
|
-
default: ignore # we assume that if the user has a ruby 2.2 runtime, it is usable
|
76
|
-
|
77
|
-
ruby23:
|
78
|
-
debian:
|
79
|
-
unstable:
|
80
|
-
- ruby2.3
|
81
|
-
- ruby2.3-dev
|
82
|
-
- rake
|
83
|
-
- rubygems-integration
|
84
|
-
ubuntu:
|
85
|
-
'16.04':
|
86
|
-
- ruby2.3-dev
|
87
|
-
- rake
|
88
|
-
- rubygems-integration
|
89
|
-
default: ignore
|
90
|
-
default: ignore # we assume that if the user has a ruby 2.3 runtime, it is usable
|
91
|
-
|
92
83
|
build-essential:
|
93
84
|
debian,ubuntu: build-essential
|
94
85
|
gentoo: ignore
|
@@ -99,10 +90,10 @@ build-essential:
|
|
99
90
|
default: clang
|
100
91
|
|
101
92
|
autobuild:
|
102
|
-
- gem: autobuild
|
93
|
+
- gem: autobuild
|
103
94
|
- osdep: readline
|
104
95
|
autoproj:
|
105
|
-
- gem: autoproj
|
96
|
+
- gem: autoproj
|
106
97
|
- osdep: readline
|
107
98
|
|
108
99
|
readline:
|
@@ -216,7 +207,6 @@ pip:
|
|
216
207
|
freebsd: pip
|
217
208
|
|
218
209
|
sudo:
|
219
|
-
macos-brew: ignore
|
220
210
|
default: sudo
|
221
211
|
|
222
212
|
# vim: expandtab
|
data/lib/autoproj/environment.rb
CHANGED
@@ -1,79 +1,101 @@
|
|
1
1
|
module Autoproj
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
2
|
+
ENV_FILENAME =
|
3
|
+
if Autobuild.windows? then "env.bat"
|
4
|
+
else "env.sh"
|
5
|
+
end
|
6
|
+
|
7
|
+
class Environment < Autobuild::Environment
|
8
|
+
attr_reader :root_dir
|
9
|
+
|
10
|
+
def prepare(root_dir)
|
11
|
+
@root_dir = root_dir
|
12
|
+
set 'AUTOPROJ_CURRENT_ROOT', root_dir
|
13
|
+
end
|
14
|
+
|
15
|
+
def expand(value)
|
16
|
+
Autoproj.expand_environment(value)
|
17
|
+
end
|
18
|
+
|
19
|
+
def export_env_sh(subdir = nil, options = Hash.new)
|
20
|
+
if subdir.kind_of?(Hash)
|
21
|
+
subdir, options = nil, subdir
|
22
|
+
end
|
23
|
+
options = validate_options options,
|
24
|
+
shell_helpers: true
|
25
|
+
|
26
|
+
filename = if subdir
|
27
|
+
File.join(root_dir, subdir, ENV_FILENAME)
|
28
|
+
else
|
29
|
+
File.join(root_dir, ENV_FILENAME)
|
30
|
+
end
|
31
|
+
|
32
|
+
shell_dir = File.expand_path(File.join("..", "..", "shell"), File.dirname(__FILE__))
|
33
|
+
if options[:shell_helpers]
|
34
|
+
Autoproj.message "sourcing autoproj shell helpers"
|
35
|
+
Autoproj.message "add \"Autoproj.config.shell_helpers = false\" in autoproj/init.rb to disable"
|
36
|
+
source_after(File.join(shell_dir, "autoproj_sh"))
|
37
|
+
end
|
38
|
+
|
39
|
+
File.open(filename, "w") do |io|
|
40
|
+
if inherit?
|
41
|
+
io.write <<-EOF
|
42
|
+
if test -n "$AUTOPROJ_CURRENT_ROOT" && test "$AUTOPROJ_CURRENT_ROOT" != "#{root_dir}"; then
|
43
|
+
echo "the env.sh from $AUTOPROJ_CURRENT_ROOT is already loaded. Start a new shell before sourcing this one"
|
44
|
+
return
|
45
|
+
fi
|
46
|
+
EOF
|
47
|
+
end
|
48
|
+
super(io)
|
49
|
+
end
|
50
|
+
end
|
12
51
|
end
|
13
52
|
|
14
|
-
#
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
#
|
19
|
-
# The values can contain configuration parameters using the
|
20
|
-
# $CONF_VARIABLE_NAME syntax.
|
53
|
+
# @deprecated call Autoproj.env.set instead
|
54
|
+
def self.env_set(name, *value)
|
55
|
+
env.set(name, *value)
|
56
|
+
end
|
57
|
+
# @deprecated call Autoproj.env.add instead
|
21
58
|
def self.env_add(name, *value)
|
22
|
-
|
23
|
-
Autobuild.env_add(name, *value)
|
59
|
+
env.add(name, *value)
|
24
60
|
end
|
25
|
-
|
26
|
-
# Sets an environment variable which is a path search variable (such as
|
27
|
-
# PATH, RUBYLIB, PYTHONPATH)
|
28
|
-
#
|
29
|
-
# This sets (or resets) the environment variable +name+ to the given value.
|
30
|
-
# If multiple values are given, they are joined with File::PATH_SEPARATOR.
|
31
|
-
# Unlike env_set, duplicate values will be removed.
|
32
|
-
#
|
33
|
-
# The values can contain configuration parameters using the
|
34
|
-
# $CONF_VARIABLE_NAME syntax.
|
61
|
+
# @deprecated call Autoproj.env.set_path instead
|
35
62
|
def self.env_set_path(name, *value)
|
36
|
-
|
37
|
-
env_add_path(name, *value)
|
63
|
+
env.set_path(name, *value)
|
38
64
|
end
|
39
|
-
|
40
|
-
# Adds new values to a given environment variable, which is a path search
|
41
|
-
# variable (such as PATH, RUBYLIB, PYTHONPATH)
|
42
|
-
#
|
43
|
-
# Adds the given value(s) to the environment variable named +name+. The
|
44
|
-
# values are added using the File::PATH_SEPARATOR marker. Unlike env_set,
|
45
|
-
# duplicate values
|
46
|
-
# will be removed.
|
47
|
-
#
|
48
|
-
# The values can contain configuration parameters using the
|
49
|
-
# $CONF_VARIABLE_NAME syntax.
|
50
|
-
#
|
51
|
-
# This is usually used in package configuration blocks to add paths
|
52
|
-
# dependent on the place of install, such as
|
53
|
-
#
|
54
|
-
# cmake_package 'test' do |pkg|
|
55
|
-
# Autoproj.env_add_path 'RUBYLIB', File.join(pkg.srcdir, 'bindings', 'ruby')
|
56
|
-
# end
|
65
|
+
# @deprecated call Autoproj.env.add_path instead
|
57
66
|
def self.env_add_path(name, *value)
|
58
|
-
|
59
|
-
Autobuild.env_add_path(name, *value)
|
67
|
+
env.add_path(name, *value)
|
60
68
|
end
|
61
|
-
|
62
|
-
# Requests that autoproj source the given shell script in its own env.sh
|
63
|
-
# script
|
69
|
+
# @deprecated call Autoproj.env.source_after instead
|
64
70
|
def self.env_source_file(file)
|
65
|
-
|
71
|
+
env.source_after(file)
|
66
72
|
end
|
67
|
-
|
68
|
-
# Requests that autoproj source the given shell script in its own env.sh
|
69
|
-
# script
|
73
|
+
# @deprecated call Autoproj.env.source_after instead
|
70
74
|
def self.env_source_after(file)
|
71
|
-
|
75
|
+
env.source_after(file)
|
72
76
|
end
|
73
|
-
|
74
|
-
# Requests that autoproj source the given shell script in its own env.sh
|
75
|
-
# script
|
77
|
+
# @deprecated call Autoproj.env.source_before instead
|
76
78
|
def self.env_source_before(file)
|
77
|
-
|
79
|
+
env.source_before(file)
|
80
|
+
end
|
81
|
+
# @deprecated call Autoproj.env.inherit instead
|
82
|
+
def self.env_inherit(*names)
|
83
|
+
env.inherit(*names)
|
84
|
+
end
|
85
|
+
# @deprecated use Autoproj.env.isolate instead
|
86
|
+
def self.set_initial_env
|
87
|
+
isolate_environment
|
88
|
+
end
|
89
|
+
# @deprecated use Autoproj.env.isolate instead
|
90
|
+
def self.isolate_environment
|
91
|
+
env.isolate
|
92
|
+
end
|
93
|
+
# @deprecated call Autoproj.env.prepare directly
|
94
|
+
def self.prepare_environment(env = Autoproj.env, manifest = Autoproj.manifest)
|
95
|
+
env.prepare(manifest)
|
96
|
+
end
|
97
|
+
# @deprecated use Autoproj.env.export_env_sh instead
|
98
|
+
def self.export_env_sh(subdir = nil)
|
99
|
+
env.export_env_sh(subdir)
|
78
100
|
end
|
79
101
|
end
|