teapot 0.9.10 → 1.0.0.pre.rc1
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.
- checksums.yaml +4 -4
- data/.travis.yml +6 -3
- data/README.md +3 -4
- data/Rakefile +3 -6
- data/bin/teapot +3 -7
- data/lib/teapot/build.rb +166 -18
- data/lib/teapot/configuration.rb +0 -1
- data/lib/teapot/context.rb +37 -21
- data/lib/teapot/controller/build.rb +24 -7
- data/lib/teapot/controller/fetch.rb +1 -1
- data/lib/teapot/controller.rb +1 -0
- data/lib/teapot/definition.rb +1 -1
- data/lib/teapot/dependency.rb +2 -6
- data/lib/teapot/environment/base.rb +7 -15
- data/lib/teapot/environment/constructor.rb +28 -0
- data/lib/teapot/environment/flatten.rb +42 -1
- data/lib/teapot/environment/system.rb +3 -3
- data/lib/teapot/extractors/linker_extractor.rb +2 -2
- data/lib/teapot/loader.rb +9 -11
- data/lib/teapot/name.rb +4 -0
- data/lib/teapot/package.rb +5 -4
- data/lib/teapot/repository.rb +29 -1
- data/lib/teapot/rule.rb +196 -0
- data/lib/teapot/rulebook.rb +91 -0
- data/lib/teapot/target.rb +15 -40
- data/lib/teapot/version.rb +1 -1
- data/{lib/teapot/build/targets/application.rb → spec/teapot/build_spec.rb} +26 -29
- data/{test/test_teapot.rb → spec/teapot/context_spec.rb} +13 -13
- data/spec/teapot/dependency_spec.rb +113 -0
- data/spec/teapot/environment_spec.rb +91 -0
- data/{lib/teapot/build/graph.rb → spec/teapot/name_spec.rb} +26 -26
- data/{test/test_substitutions.rb → spec/teapot/substitutions_spec.rb} +36 -36
- data/{test → spec/teapot}/teapot.rb +1 -1
- data/teapot.gemspec +16 -9
- metadata +98 -51
- data/lib/teapot/build/component.rb +0 -69
- data/lib/teapot/build/file_list.rb +0 -67
- data/lib/teapot/build/linker.rb +0 -49
- data/lib/teapot/build/target.rb +0 -76
- data/lib/teapot/build/targets/compiler.rb +0 -83
- data/lib/teapot/build/targets/directory.rb +0 -63
- data/lib/teapot/build/targets/executable.rb +0 -56
- data/lib/teapot/build/targets/external.rb +0 -91
- data/lib/teapot/build/targets/files.rb +0 -82
- data/lib/teapot/build/targets/library.rb +0 -117
- data/lib/teapot/commands.rb +0 -139
- data/lib/teapot/controller/run.rb +0 -43
- data/lib/teapot/graph.rb +0 -136
- data/test/test_dependency.rb +0 -112
- data/test/test_environment.rb +0 -102
@@ -0,0 +1,113 @@
|
|
1
|
+
# Copyright, 2012, by Samuel G. D. Williams. <http://www.codeotaku.com>
|
2
|
+
#
|
3
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
|
+
# of this software and associated documentation files (the "Software"), to deal
|
5
|
+
# in the Software without restriction, including without limitation the rights
|
6
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
7
|
+
# copies of the Software, and to permit persons to whom the Software is
|
8
|
+
# furnished to do so, subject to the following conditions:
|
9
|
+
#
|
10
|
+
# The above copyright notice and this permission notice shall be included in
|
11
|
+
# all copies or substantial portions of the Software.
|
12
|
+
#
|
13
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
16
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
19
|
+
# THE SOFTWARE.
|
20
|
+
|
21
|
+
require 'teapot/dependency'
|
22
|
+
|
23
|
+
module Teapot::DependencySpec
|
24
|
+
class BasicDependency
|
25
|
+
include Teapot::Dependency
|
26
|
+
|
27
|
+
def initialize(name = nil)
|
28
|
+
@name = name
|
29
|
+
end
|
30
|
+
|
31
|
+
attr :name
|
32
|
+
end
|
33
|
+
|
34
|
+
describe Teapot::Dependency do
|
35
|
+
it "Should resolve dependency chain" do
|
36
|
+
a = BasicDependency.new
|
37
|
+
|
38
|
+
a.provides 'apple' do
|
39
|
+
fruit ['apple']
|
40
|
+
end
|
41
|
+
|
42
|
+
b = BasicDependency.new
|
43
|
+
|
44
|
+
b.provides 'orange' do
|
45
|
+
fruit ['orange']
|
46
|
+
end
|
47
|
+
|
48
|
+
c = BasicDependency.new
|
49
|
+
|
50
|
+
c.provides 'fruit-juice' do
|
51
|
+
juice ['ice', 'cold']
|
52
|
+
end
|
53
|
+
|
54
|
+
c.depends 'apple'
|
55
|
+
c.depends 'orange'
|
56
|
+
|
57
|
+
chain = Teapot::Dependency::chain([], ['fruit-juice'], [a, b, c])
|
58
|
+
expect(chain.ordered.collect(&:first)).to be == [a, b, c]
|
59
|
+
|
60
|
+
d = BasicDependency.new
|
61
|
+
|
62
|
+
d.provides 'pie' do
|
63
|
+
end
|
64
|
+
|
65
|
+
d.depends 'apple'
|
66
|
+
|
67
|
+
chain = Teapot::Dependency::chain([], ['pie'], [a, b, c, d])
|
68
|
+
|
69
|
+
expect(chain.unresolved).to be == []
|
70
|
+
expect(chain.ordered.collect(&:first)).to be == [a, d]
|
71
|
+
end
|
72
|
+
|
73
|
+
it "should report conflicts" do
|
74
|
+
apple = BasicDependency.new('apple')
|
75
|
+
apple.provides 'apple'
|
76
|
+
apple.provides 'fruit'
|
77
|
+
|
78
|
+
bananna = BasicDependency.new('bananna')
|
79
|
+
bananna.provides 'fruit'
|
80
|
+
|
81
|
+
salad = BasicDependency.new('salad')
|
82
|
+
salad.depends 'fruit'
|
83
|
+
salad.provides 'salad'
|
84
|
+
|
85
|
+
chain = Teapot::Dependency::Chain.new([], ['salad'], [apple, bananna, salad])
|
86
|
+
expect(chain.unresolved.first).to be == ["fruit", salad]
|
87
|
+
expect(chain.conflicts).to be == {"fruit" => [apple, bananna]}
|
88
|
+
|
89
|
+
chain = Teapot::Dependency::Chain.new(['apple'], ['salad'], [apple, bananna, salad])
|
90
|
+
expect(chain.unresolved).to be == []
|
91
|
+
expect(chain.conflicts).to be == {}
|
92
|
+
end
|
93
|
+
|
94
|
+
it "should resolve aliases" do
|
95
|
+
apple = BasicDependency.new('apple')
|
96
|
+
apple.provides 'apple'
|
97
|
+
apple.provides :fruit => 'apple'
|
98
|
+
|
99
|
+
bananna = BasicDependency.new('bananna')
|
100
|
+
bananna.provides 'bananna'
|
101
|
+
bananna.provides :fruit => 'bananna'
|
102
|
+
|
103
|
+
salad = BasicDependency.new('salad')
|
104
|
+
salad.depends :fruit
|
105
|
+
salad.provides 'salad'
|
106
|
+
|
107
|
+
chain = Teapot::Dependency::chain(['apple'], ['salad'], [apple, bananna, salad])
|
108
|
+
expect(chain.unresolved).to be == []
|
109
|
+
expect(chain.conflicts).to be == {}
|
110
|
+
expect(chain.ordered).to be == [[apple, "apple"], [salad, "salad"]]
|
111
|
+
end
|
112
|
+
end
|
113
|
+
end
|
@@ -0,0 +1,91 @@
|
|
1
|
+
# Copyright, 2012, by Samuel G. D. Williams. <http://www.codeotaku.com>
|
2
|
+
#
|
3
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
|
+
# of this software and associated documentation files (the "Software"), to deal
|
5
|
+
# in the Software without restriction, including without limitation the rights
|
6
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
7
|
+
# copies of the Software, and to permit persons to whom the Software is
|
8
|
+
# furnished to do so, subject to the following conditions:
|
9
|
+
#
|
10
|
+
# The above copyright notice and this permission notice shall be included in
|
11
|
+
# all copies or substantial portions of the Software.
|
12
|
+
#
|
13
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
16
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
19
|
+
# THE SOFTWARE.
|
20
|
+
|
21
|
+
require 'teapot/environment'
|
22
|
+
|
23
|
+
module Teapot::EnvironmentSpec
|
24
|
+
describe Teapot::Environment do
|
25
|
+
it "should chain environments together" do
|
26
|
+
a = Teapot::Environment.new
|
27
|
+
a[:cflags] = ["-std=c++11"]
|
28
|
+
|
29
|
+
b = Teapot::Environment.new(a, {})
|
30
|
+
b[:cflags] = ["-stdlib=libc++"]
|
31
|
+
b[:rcflags] = lambda {cflags.reverse}
|
32
|
+
|
33
|
+
expect(b.flatten.to_hash).to be == {:cflags => ["-std=c++11", "-stdlib=libc++"], :rcflags => ["-stdlib=libc++", "-std=c++11"]}
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should resolve nested lambda" do
|
37
|
+
a = Teapot::Environment.new do
|
38
|
+
sdk "bob-2.6"
|
39
|
+
cflags [->{"-sdk=#{sdk}"}]
|
40
|
+
end
|
41
|
+
|
42
|
+
b = Teapot::Environment.new(a) do
|
43
|
+
sdk "bob-2.8"
|
44
|
+
end
|
45
|
+
|
46
|
+
c = Teapot::Environment.new(b) do
|
47
|
+
cflags ["-pipe"]
|
48
|
+
end
|
49
|
+
|
50
|
+
expect(b.flatten.to_hash.keys.sort).to be == [:cflags, :sdk]
|
51
|
+
|
52
|
+
expect(Teapot::Environment::System::convert_to_shell(b.flatten)).to be == {
|
53
|
+
'SDK' => "bob-2.8",
|
54
|
+
'CFLAGS' => "-sdk=bob-2.8"
|
55
|
+
}
|
56
|
+
|
57
|
+
expect(c.flatten[:cflags]).to be == %W{-sdk=bob-2.8 -pipe}
|
58
|
+
end
|
59
|
+
|
60
|
+
it "should combine environments" do
|
61
|
+
a = Teapot::Environment.new(nil, {:name => 'a'})
|
62
|
+
b = Teapot::Environment.new(a, {:name => 'b'})
|
63
|
+
c = Teapot::Environment.new(nil, {:name => 'c'})
|
64
|
+
d = Teapot::Environment.new(c, {:name => 'd'})
|
65
|
+
|
66
|
+
top = Teapot::Environment.combine(b, d)
|
67
|
+
|
68
|
+
expect(top.values).to be == d.values
|
69
|
+
expect(top.parent.values).to be == c.values
|
70
|
+
expect(top.parent.parent.values).to be == b.values
|
71
|
+
expect(top.parent.parent.parent.values).to be == a.values
|
72
|
+
end
|
73
|
+
|
74
|
+
it "should combine defaults" do
|
75
|
+
local = Teapot::Environment.new do
|
76
|
+
architectures ["-m64"]
|
77
|
+
end
|
78
|
+
|
79
|
+
platform = Teapot::Environment.new do
|
80
|
+
default architectures ["-arch", "i386"]
|
81
|
+
end
|
82
|
+
|
83
|
+
combined = Teapot::Environment.combine(
|
84
|
+
platform,
|
85
|
+
local
|
86
|
+
)
|
87
|
+
|
88
|
+
expect(combined[:architectures]).to be == ["-m64"]
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
@@ -18,33 +18,33 @@
|
|
18
18
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
19
19
|
# THE SOFTWARE.
|
20
20
|
|
21
|
-
require '
|
21
|
+
require 'teapot/name'
|
22
22
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
23
|
+
module Teapot::NameSpec
|
24
|
+
describe Teapot::Name do
|
25
|
+
let(:name) {Teapot::Name.new('Foo Bar')}
|
26
|
+
it "retains the original text" do
|
27
|
+
expect(name.text).to be == 'Foo Bar'
|
28
|
+
end
|
29
29
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
30
|
+
it "should generate useful identifiers" do
|
31
|
+
expect(name.identifier).to be == 'FooBar'
|
32
|
+
end
|
33
|
+
|
34
|
+
it "should generate useful target names" do
|
35
|
+
expect(name.target).to be == 'foo-bar'
|
36
|
+
end
|
37
|
+
|
38
|
+
it "should generate useful macro names" do
|
39
|
+
expect(name.macro).to be == 'FOO_BAR'
|
40
|
+
end
|
41
|
+
|
42
|
+
it "should generate useful macro names" do
|
43
|
+
expect(name.macro).to be == 'FOO_BAR'
|
44
|
+
end
|
45
|
+
|
46
|
+
it "can be constructed from target name" do
|
47
|
+
expect(Teapot::Name.from_target(name.target).text).to be == name.text
|
48
48
|
end
|
49
49
|
end
|
50
|
-
end
|
50
|
+
end
|
@@ -18,48 +18,48 @@
|
|
18
18
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
19
19
|
# THE SOFTWARE.
|
20
20
|
|
21
|
-
require "minitest/autorun"
|
22
|
-
|
23
21
|
require 'teapot/substitutions'
|
24
22
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
23
|
+
module Teapot::SubstitutionsSpec
|
24
|
+
describe Teapot::Substitutions do
|
25
|
+
it "should substitute symbolic expressions" do
|
26
|
+
input = <<-EOF
|
27
|
+
$FOO $BAR
|
28
|
+
EOF
|
30
29
|
|
31
|
-
|
32
|
-
|
33
|
-
|
30
|
+
output = <<-EOF
|
31
|
+
baz bar
|
32
|
+
EOF
|
34
33
|
|
35
|
-
|
36
|
-
|
37
|
-
|
34
|
+
substitutions = Teapot::Substitutions.new
|
35
|
+
substitutions['FOO'] = 'baz'
|
36
|
+
substitutions['BAR'] = 'bar'
|
38
37
|
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
38
|
+
expect(substitutions.apply(input)).to be == output
|
39
|
+
end
|
40
|
+
|
41
|
+
it "should indent nestest expressions" do
|
42
|
+
input = <<-EOF
|
43
|
+
<FOO>
|
44
|
+
$BAR
|
45
|
+
</FOO>
|
46
|
+
EOF
|
48
47
|
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
48
|
+
output = <<-EOF
|
49
|
+
enter
|
50
|
+
{
|
51
|
+
foo
|
52
|
+
Hello World
|
53
|
+
bar
|
54
|
+
}
|
55
|
+
exit
|
56
|
+
EOF
|
58
57
|
|
59
|
-
|
60
|
-
|
61
|
-
|
58
|
+
substitutions = Teapot::Substitutions.new
|
59
|
+
substitutions['FOO'] = ["enter\n{\n", "foo\n", "bar\n", "}\nexit\n"]
|
60
|
+
substitutions['BAR'] = 'Hello World'
|
62
61
|
|
63
|
-
|
62
|
+
expect(substitutions.apply(input)).to be == output
|
63
|
+
end
|
64
64
|
end
|
65
|
-
end
|
65
|
+
end
|
data/teapot.gemspec
CHANGED
@@ -23,20 +23,27 @@ Gem::Specification.new do |spec|
|
|
23
23
|
spec.executables = spec.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
24
24
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
25
25
|
spec.require_paths = ["lib"]
|
26
|
-
|
27
|
-
spec.required_ruby_version = '>=
|
28
|
-
|
26
|
+
|
27
|
+
spec.required_ruby_version = '>= 2.0'
|
28
|
+
|
29
29
|
spec.add_dependency "rainbow", "~> 2.0.0"
|
30
|
-
spec.add_dependency "
|
31
|
-
|
30
|
+
spec.add_dependency "trollop", "~> 2.0"
|
31
|
+
|
32
32
|
spec.add_dependency "system", "~> 0.1.3"
|
33
|
-
|
34
|
-
spec.add_dependency "graphviz"
|
35
|
-
|
33
|
+
|
34
|
+
spec.add_dependency "graphviz", "~> 0.0.2"
|
35
|
+
|
36
|
+
spec.add_dependency "build-files", "~> 0.2.3"
|
37
|
+
spec.add_dependency "build-graph", "~> 0.3.2"
|
38
|
+
spec.add_dependency "build-makefile", "~> 0.2.0"
|
39
|
+
|
40
|
+
spec.add_dependency "process-daemon", "~> 0.5.5"
|
41
|
+
spec.add_dependency "process-group", "~> 0.2.1"
|
42
|
+
|
36
43
|
# This could be a good option in the future for teapot fetch:
|
37
44
|
#spec.add_dependency "rugged"
|
38
45
|
|
39
46
|
spec.add_development_dependency "bundler", "~> 1.3"
|
40
|
-
spec.add_development_dependency "
|
47
|
+
spec.add_development_dependency "rspec", "~> 3.0.0"
|
41
48
|
spec.add_development_dependency "rake"
|
42
49
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: teapot
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0.pre.rc1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Samuel Williams
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-06-
|
11
|
+
date: 2014-06-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rainbow
|
@@ -25,61 +25,117 @@ dependencies:
|
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 2.0.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: trollop
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: '2.0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: '2.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: system
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: 0.1.3
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
version: 0.1.3
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: graphviz
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 0.
|
61
|
+
version: 0.0.2
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: 0.
|
68
|
+
version: 0.0.2
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
70
|
+
name: build-files
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- - "
|
73
|
+
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
75
|
+
version: 0.2.3
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- - "
|
80
|
+
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
82
|
+
version: 0.2.3
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: build-graph
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 0.3.2
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 0.3.2
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: build-makefile
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 0.2.0
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 0.2.0
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: process-daemon
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: 0.5.5
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: 0.5.5
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: process-group
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: 0.2.1
|
132
|
+
type: :runtime
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: 0.2.1
|
83
139
|
- !ruby/object:Gem::Dependency
|
84
140
|
name: bundler
|
85
141
|
requirement: !ruby/object:Gem::Requirement
|
@@ -95,19 +151,19 @@ dependencies:
|
|
95
151
|
- !ruby/object:Gem::Version
|
96
152
|
version: '1.3'
|
97
153
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
154
|
+
name: rspec
|
99
155
|
requirement: !ruby/object:Gem::Requirement
|
100
156
|
requirements:
|
101
|
-
- - "
|
157
|
+
- - "~>"
|
102
158
|
- !ruby/object:Gem::Version
|
103
|
-
version:
|
159
|
+
version: 3.0.0
|
104
160
|
type: :development
|
105
161
|
prerelease: false
|
106
162
|
version_requirements: !ruby/object:Gem::Requirement
|
107
163
|
requirements:
|
108
|
-
- - "
|
164
|
+
- - "~>"
|
109
165
|
- !ruby/object:Gem::Version
|
110
|
-
version:
|
166
|
+
version: 3.0.0
|
111
167
|
- !ruby/object:Gem::Dependency
|
112
168
|
name: rake
|
113
169
|
requirement: !ruby/object:Gem::Requirement
|
@@ -141,19 +197,6 @@ files:
|
|
141
197
|
- bin/teapot
|
142
198
|
- lib/teapot.rb
|
143
199
|
- lib/teapot/build.rb
|
144
|
-
- lib/teapot/build/component.rb
|
145
|
-
- lib/teapot/build/file_list.rb
|
146
|
-
- lib/teapot/build/graph.rb
|
147
|
-
- lib/teapot/build/linker.rb
|
148
|
-
- lib/teapot/build/target.rb
|
149
|
-
- lib/teapot/build/targets/application.rb
|
150
|
-
- lib/teapot/build/targets/compiler.rb
|
151
|
-
- lib/teapot/build/targets/directory.rb
|
152
|
-
- lib/teapot/build/targets/executable.rb
|
153
|
-
- lib/teapot/build/targets/external.rb
|
154
|
-
- lib/teapot/build/targets/files.rb
|
155
|
-
- lib/teapot/build/targets/library.rb
|
156
|
-
- lib/teapot/commands.rb
|
157
200
|
- lib/teapot/configuration.rb
|
158
201
|
- lib/teapot/context.rb
|
159
202
|
- lib/teapot/controller.rb
|
@@ -163,7 +206,6 @@ files:
|
|
163
206
|
- lib/teapot/controller/fetch.rb
|
164
207
|
- lib/teapot/controller/generate.rb
|
165
208
|
- lib/teapot/controller/list.rb
|
166
|
-
- lib/teapot/controller/run.rb
|
167
209
|
- lib/teapot/controller/visualize.rb
|
168
210
|
- lib/teapot/definition.rb
|
169
211
|
- lib/teapot/dependency.rb
|
@@ -176,22 +218,25 @@ files:
|
|
176
218
|
- lib/teapot/extractors/linker_extractor.rb
|
177
219
|
- lib/teapot/extractors/preprocessor_extractor.rb
|
178
220
|
- lib/teapot/generator.rb
|
179
|
-
- lib/teapot/graph.rb
|
180
221
|
- lib/teapot/loader.rb
|
181
222
|
- lib/teapot/merge.rb
|
182
223
|
- lib/teapot/name.rb
|
183
224
|
- lib/teapot/package.rb
|
184
225
|
- lib/teapot/project.rb
|
185
226
|
- lib/teapot/repository.rb
|
227
|
+
- lib/teapot/rule.rb
|
228
|
+
- lib/teapot/rulebook.rb
|
186
229
|
- lib/teapot/substitutions.rb
|
187
230
|
- lib/teapot/target.rb
|
188
231
|
- lib/teapot/version.rb
|
232
|
+
- spec/teapot/build_spec.rb
|
233
|
+
- spec/teapot/context_spec.rb
|
234
|
+
- spec/teapot/dependency_spec.rb
|
235
|
+
- spec/teapot/environment_spec.rb
|
236
|
+
- spec/teapot/name_spec.rb
|
237
|
+
- spec/teapot/substitutions_spec.rb
|
238
|
+
- spec/teapot/teapot.rb
|
189
239
|
- teapot.gemspec
|
190
|
-
- test/teapot.rb
|
191
|
-
- test/test_dependency.rb
|
192
|
-
- test/test_environment.rb
|
193
|
-
- test/test_substitutions.rb
|
194
|
-
- test/test_teapot.rb
|
195
240
|
homepage: http://www.kyusu.org
|
196
241
|
licenses:
|
197
242
|
- MIT
|
@@ -204,12 +249,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
204
249
|
requirements:
|
205
250
|
- - ">="
|
206
251
|
- !ruby/object:Gem::Version
|
207
|
-
version:
|
252
|
+
version: '2.0'
|
208
253
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
209
254
|
requirements:
|
210
|
-
- - "
|
255
|
+
- - ">"
|
211
256
|
- !ruby/object:Gem::Version
|
212
|
-
version:
|
257
|
+
version: 1.3.1
|
213
258
|
requirements: []
|
214
259
|
rubyforge_project:
|
215
260
|
rubygems_version: 2.2.2
|
@@ -217,8 +262,10 @@ signing_key:
|
|
217
262
|
specification_version: 4
|
218
263
|
summary: Teapot is a tool for managing complex cross-platform builds.
|
219
264
|
test_files:
|
220
|
-
-
|
221
|
-
-
|
222
|
-
-
|
223
|
-
-
|
224
|
-
-
|
265
|
+
- spec/teapot/build_spec.rb
|
266
|
+
- spec/teapot/context_spec.rb
|
267
|
+
- spec/teapot/dependency_spec.rb
|
268
|
+
- spec/teapot/environment_spec.rb
|
269
|
+
- spec/teapot/name_spec.rb
|
270
|
+
- spec/teapot/substitutions_spec.rb
|
271
|
+
- spec/teapot/teapot.rb
|