autobuild 1.5.25 → 1.5.26
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/Changes.txt +3 -0
- data/lib/autobuild/package.rb +9 -0
- data/lib/autobuild/packages/cmake.rb +1 -1
- data/lib/autobuild/subcommand.rb +28 -0
- data/lib/autobuild/version.rb +1 -1
- metadata +4 -4
data/Changes.txt
CHANGED
data/lib/autobuild/package.rb
CHANGED
|
@@ -71,6 +71,14 @@ module Autobuild
|
|
|
71
71
|
# The list of packages this one depends upon
|
|
72
72
|
attr_reader :dependencies
|
|
73
73
|
|
|
74
|
+
# Some statistics about the commands that have been run
|
|
75
|
+
attr_reader :statistics
|
|
76
|
+
|
|
77
|
+
def add_stat(phase, duration)
|
|
78
|
+
@statistics[phase] ||= 0
|
|
79
|
+
@statistics[phase] += duration
|
|
80
|
+
end
|
|
81
|
+
|
|
74
82
|
# Absolute path to the source directory. See #srcdir=
|
|
75
83
|
def srcdir; File.expand_path(@srcdir || name, Autobuild.srcdir) end
|
|
76
84
|
# Absolute path to the installation directory. See #prefix=
|
|
@@ -97,6 +105,7 @@ module Autobuild
|
|
|
97
105
|
@dependencies = Array.new
|
|
98
106
|
@provides = Array.new
|
|
99
107
|
@parallel_build_level = nil
|
|
108
|
+
@statistics = Hash.new
|
|
100
109
|
|
|
101
110
|
if Hash === spec
|
|
102
111
|
name, depends = spec.to_a.first
|
|
@@ -189,7 +189,7 @@ module Autobuild
|
|
|
189
189
|
def install
|
|
190
190
|
Dir.chdir(builddir) do
|
|
191
191
|
progress "installing %s"
|
|
192
|
-
Subprocess.run(self, '
|
|
192
|
+
Subprocess.run(self, 'install', Autobuild.tool(:make), "-j#{parallel_build_level}", 'install')
|
|
193
193
|
end
|
|
194
194
|
super
|
|
195
195
|
end
|
data/lib/autobuild/subcommand.rb
CHANGED
|
@@ -21,6 +21,23 @@ module Autobuild
|
|
|
21
21
|
@logfiles.include?(logfile)
|
|
22
22
|
end
|
|
23
23
|
|
|
24
|
+
def self.statistics
|
|
25
|
+
@statistics
|
|
26
|
+
end
|
|
27
|
+
def self.reset_statistics
|
|
28
|
+
@statistics = Hash.new
|
|
29
|
+
end
|
|
30
|
+
def self.add_stat(package, phase, duration)
|
|
31
|
+
if !@statistics[package]
|
|
32
|
+
@statistics[package] = { phase => duration }
|
|
33
|
+
elsif !@statistics[package][phase]
|
|
34
|
+
@statistics[package][phase] = duration
|
|
35
|
+
else
|
|
36
|
+
@statistics[package][phase] += duration
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
reset_statistics
|
|
40
|
+
|
|
24
41
|
@parallel_build_level = nil
|
|
25
42
|
class << self
|
|
26
43
|
# Sets the level of parallelism during the build
|
|
@@ -86,6 +103,8 @@ module Autobuild::Subprocess
|
|
|
86
103
|
def self.run(target, phase, *command)
|
|
87
104
|
STDOUT.sync = true
|
|
88
105
|
|
|
106
|
+
start_time = Time.now
|
|
107
|
+
|
|
89
108
|
# Filter nil and empty? in command
|
|
90
109
|
command.reject! { |o| o.nil? || (o.respond_to?(:empty?) && o.empty?) }
|
|
91
110
|
command.collect! { |o| o.to_s }
|
|
@@ -223,6 +242,15 @@ module Autobuild::Subprocess
|
|
|
223
242
|
raise Failed.new(status.exitstatus), "'#{command.join(' ')}' returned status #{status.exitstatus}"
|
|
224
243
|
end
|
|
225
244
|
|
|
245
|
+
duration = Time.now - start_time
|
|
246
|
+
Autobuild.add_stat(target, phase, duration)
|
|
247
|
+
File.open(File.join(Autobuild.logdir, "stats.log"), 'a') do |io|
|
|
248
|
+
io.puts "#{target} #{phase} #{duration}"
|
|
249
|
+
end
|
|
250
|
+
if target.respond_to?(:add_stat)
|
|
251
|
+
target.add_stat(phase, duration)
|
|
252
|
+
end
|
|
253
|
+
|
|
226
254
|
rescue Failed => e
|
|
227
255
|
error = Autobuild::SubcommandFailed.new(target_name, command.join(" "), logname, e.status)
|
|
228
256
|
error.phase = phase
|
data/lib/autobuild/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: autobuild
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
hash:
|
|
4
|
+
hash: 55
|
|
5
5
|
prerelease: false
|
|
6
6
|
segments:
|
|
7
7
|
- 1
|
|
8
8
|
- 5
|
|
9
|
-
-
|
|
10
|
-
version: 1.5.
|
|
9
|
+
- 26
|
|
10
|
+
version: 1.5.26
|
|
11
11
|
platform: ruby
|
|
12
12
|
authors:
|
|
13
13
|
- Sylvain Joyeux
|
|
@@ -15,7 +15,7 @@ autorequire:
|
|
|
15
15
|
bindir: bin
|
|
16
16
|
cert_chain: []
|
|
17
17
|
|
|
18
|
-
date: 2010-11-
|
|
18
|
+
date: 2010-11-26 00:00:00 +01:00
|
|
19
19
|
default_executable:
|
|
20
20
|
dependencies:
|
|
21
21
|
- !ruby/object:Gem::Dependency
|