build-dependency 1.5.0 → 1.6.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.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/lib/build/dependency/chain.rb +13 -22
- data/lib/build/dependency/partial_chain.rb +18 -21
- data/lib/build/dependency/provider.rb +28 -27
- data/lib/build/dependency/resolver.rb +12 -21
- data/lib/build/dependency/set.rb +27 -20
- data/lib/build/dependency/version.rb +7 -20
- data/lib/build/dependency/visualization.rb +59 -115
- data/lib/build/dependency.rb +9 -24
- data/license.md +21 -0
- data/readme.md +64 -0
- data/releases.md +5 -0
- data/test/build/dependency/chain.rb +223 -0
- data/test/build/dependency/partial_chain.rb +121 -0
- data/test/build/dependency/provider.rb +189 -0
- data/test/build/dependency/set.rb +122 -0
- data/test/build/dependency/visualization.rb +21 -0
- data/test/build/dependency/wildcard.rb +38 -0
- data.tar.gz.sig +1 -0
- metadata +49 -113
- metadata.gz.sig +0 -0
- data/.gitignore +0 -23
- data/.rspec +0 -4
- data/.travis.yml +0 -17
- data/Gemfile +0 -14
- data/Guardfile +0 -9
- data/README.md +0 -214
- data/Rakefile +0 -8
- data/build-dependency.gemspec +0 -24
- data/build_system_rules_and_algorithms.pdf +0 -0
- data/full.svg +0 -123
- data/partial.svg +0 -93
- data/spec/build/dependency/chain_spec.rb +0 -218
- data/spec/build/dependency/package.rb +0 -89
- data/spec/build/dependency/partial_chain_spec.rb +0 -119
- data/spec/build/dependency/provider_spec.rb +0 -123
- data/spec/build/dependency/set_spec.rb +0 -87
- data/spec/build/dependency/visualization_spec.rb +0 -33
- data/spec/build/dependency/wildcard_spec.rb +0 -45
- data/spec/spec_helper.rb +0 -11
- data/visualization.svg +0 -147
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
# Copyright, 2017, 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_relative 'package'
|
|
22
|
-
|
|
23
|
-
RSpec.describe Build::Dependency::Provider do
|
|
24
|
-
include_context "app packages"
|
|
25
|
-
|
|
26
|
-
let(:provider) do
|
|
27
|
-
Package.new("test").tap do |package|
|
|
28
|
-
package.depends "a", private: true
|
|
29
|
-
package.depends "b", public: true
|
|
30
|
-
package.depends :variant
|
|
31
|
-
|
|
32
|
-
package.provides "c" do
|
|
33
|
-
puts "Hello World"
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
package.provides platform: "linux"
|
|
37
|
-
end
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
it "should have specified dependencies" do
|
|
41
|
-
expect(provider.dependencies.count).to be == 3
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
it "should have specified provisions" do
|
|
45
|
-
expect(provider.provisions.count).to be == 2
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
describe Build::Dependency::Provision do
|
|
49
|
-
subject {provider.provisions["c"]}
|
|
50
|
-
|
|
51
|
-
it "should have name" do
|
|
52
|
-
expect(subject.name).to be == "c"
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
it "should not be an alias" do
|
|
56
|
-
is_expected.to_not be_alias
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
it "should format nicely" do
|
|
60
|
-
expect(subject.to_s).to be == 'provides "c"'
|
|
61
|
-
end
|
|
62
|
-
end
|
|
63
|
-
|
|
64
|
-
describe Build::Dependency::Depends do
|
|
65
|
-
subject {provider.dependencies["a"]}
|
|
66
|
-
|
|
67
|
-
it "should have a name" do
|
|
68
|
-
expect(subject.name).to be == "a"
|
|
69
|
-
end
|
|
70
|
-
|
|
71
|
-
it "should not be an alias" do
|
|
72
|
-
is_expected.to_not be_alias
|
|
73
|
-
end
|
|
74
|
-
|
|
75
|
-
it "should format nicely" do
|
|
76
|
-
expect(subject.to_s).to be == 'depends on "a" {:private=>true}'
|
|
77
|
-
end
|
|
78
|
-
|
|
79
|
-
it "should be private" do
|
|
80
|
-
expect(subject).to be_private
|
|
81
|
-
end
|
|
82
|
-
|
|
83
|
-
it "should not be public" do
|
|
84
|
-
expect(subject).to_not be_public
|
|
85
|
-
end
|
|
86
|
-
end
|
|
87
|
-
|
|
88
|
-
describe Build::Dependency::Depends do
|
|
89
|
-
subject {provider.dependencies["b"]}
|
|
90
|
-
|
|
91
|
-
it "should be public" do
|
|
92
|
-
expect(subject).to be_public
|
|
93
|
-
end
|
|
94
|
-
|
|
95
|
-
it "should not be private" do
|
|
96
|
-
expect(subject).to_not be_private
|
|
97
|
-
end
|
|
98
|
-
end
|
|
99
|
-
|
|
100
|
-
describe Build::Dependency::Depends do
|
|
101
|
-
subject {provider.dependencies[:variant]}
|
|
102
|
-
|
|
103
|
-
it "should not be public" do
|
|
104
|
-
expect(subject).to_not be_public
|
|
105
|
-
end
|
|
106
|
-
|
|
107
|
-
it "should not be private" do
|
|
108
|
-
expect(subject).to_not be_private
|
|
109
|
-
end
|
|
110
|
-
end
|
|
111
|
-
|
|
112
|
-
describe Build::Dependency::Alias do
|
|
113
|
-
subject {provider.provisions[:platform]}
|
|
114
|
-
|
|
115
|
-
it "should be an alias" do
|
|
116
|
-
is_expected.to be_alias
|
|
117
|
-
end
|
|
118
|
-
|
|
119
|
-
it "should format nicely" do
|
|
120
|
-
expect(subject.to_s).to be == 'provides :platform -> "linux"'
|
|
121
|
-
end
|
|
122
|
-
end
|
|
123
|
-
end
|
|
@@ -1,87 +0,0 @@
|
|
|
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 'build/dependency/set'
|
|
22
|
-
|
|
23
|
-
RSpec.describe Build::Dependency::Set do
|
|
24
|
-
NamedObject = Struct.new(:name, :age)
|
|
25
|
-
|
|
26
|
-
let(:object_class) {Struct.new(:name, :age)}
|
|
27
|
-
|
|
28
|
-
describe "empty set" do
|
|
29
|
-
it "is empty" do
|
|
30
|
-
expect(subject).to be_empty
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
describe "non-empty set" do
|
|
35
|
-
let(:bob) {object_class.new('Bob', 10)}
|
|
36
|
-
subject {described_class.new([bob])}
|
|
37
|
-
|
|
38
|
-
it "should contain named objects" do
|
|
39
|
-
expect(subject).to be_include bob
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
it "can enumerate all contained objects" do
|
|
43
|
-
expect(subject.each.to_a).to be == [bob]
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
it "contains one item" do
|
|
47
|
-
expect(subject).to_not be_empty
|
|
48
|
-
expect(subject.size).to be == 1
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
it "can be cleared" do
|
|
52
|
-
expect(subject).to_not be_empty
|
|
53
|
-
subject.clear
|
|
54
|
-
expect(subject).to be_empty
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
it "can delete items" do
|
|
58
|
-
expect(subject).to_not be_empty
|
|
59
|
-
subject.delete(bob)
|
|
60
|
-
expect(subject).to be_empty
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
it "can be frozen" do
|
|
64
|
-
subject.freeze
|
|
65
|
-
|
|
66
|
-
expect(subject).to be_frozen
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
it "can look up named items" do
|
|
70
|
-
expect(subject[bob.name]).to be == bob
|
|
71
|
-
end
|
|
72
|
-
|
|
73
|
-
it "should have string representation" do
|
|
74
|
-
expect(subject.to_s).to be =~ /Bob/
|
|
75
|
-
end
|
|
76
|
-
end
|
|
77
|
-
|
|
78
|
-
it "could contain many items" do
|
|
79
|
-
names = ["Apple", "Orange", "Banana", "Kiwifruit"]
|
|
80
|
-
|
|
81
|
-
names.each_with_index do |name, index|
|
|
82
|
-
subject << NamedObject.new(name, index)
|
|
83
|
-
end
|
|
84
|
-
|
|
85
|
-
expect(subject.size).to be == names.size
|
|
86
|
-
end
|
|
87
|
-
end
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
# Copyright, 2017, 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_relative 'package'
|
|
22
|
-
|
|
23
|
-
RSpec.describe Build::Dependency::Visualization do
|
|
24
|
-
include_context "app packages"
|
|
25
|
-
|
|
26
|
-
it "should visualize dependency chain" do
|
|
27
|
-
chain = Build::Dependency::Chain.expand(['app', 'tests'], packages)
|
|
28
|
-
|
|
29
|
-
graph = subject.generate(chain)
|
|
30
|
-
|
|
31
|
-
Graphviz.output(graph, path: "visualization.svg", format: 'svg')
|
|
32
|
-
end
|
|
33
|
-
end
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
# Copyright, 2017, 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_relative 'package'
|
|
22
|
-
|
|
23
|
-
RSpec.describe Build::Dependency do
|
|
24
|
-
describe "test packages" do
|
|
25
|
-
let(:a) do
|
|
26
|
-
Package.new('Library/Frobulate').tap do |package|
|
|
27
|
-
package.provides 'Test/Frobulate' do
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
let(:b) do
|
|
33
|
-
Package.new('Library/Barbulate').tap do |package|
|
|
34
|
-
package.provides 'Test/Barbulate' do
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
it "should resolve all tests" do
|
|
40
|
-
chain = Build::Dependency::Chain.expand(['Test/*'], [a, b])
|
|
41
|
-
expect(chain.ordered.collect(&:provider)).to be == [a, b]
|
|
42
|
-
expect(chain.unresolved).to be == []
|
|
43
|
-
end
|
|
44
|
-
end
|
|
45
|
-
end
|
data/spec/spec_helper.rb
DELETED
data/visualization.svg
DELETED
|
@@ -1,147 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
2
|
-
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
|
3
|
-
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
4
|
-
<!-- Generated by graphviz version 2.42.1 (0)
|
|
5
|
-
-->
|
|
6
|
-
<!-- Title: G Pages: 1 -->
|
|
7
|
-
<svg width="396pt" height="404pt"
|
|
8
|
-
viewBox="0.00 0.00 396.00 404.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
9
|
-
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 400)">
|
|
10
|
-
<title>G</title>
|
|
11
|
-
<polygon fill="white" stroke="transparent" points="-4,4 -4,-400 392,-400 392,4 -4,4"/>
|
|
12
|
-
<!-- Variant/debug -->
|
|
13
|
-
<g id="node1" class="node">
|
|
14
|
-
<title>Variant/debug</title>
|
|
15
|
-
<polygon fill="lightblue" stroke="black" stroke-width="2" points="262.5,-36 148.5,-36 148.5,0 262.5,0 262.5,-36"/>
|
|
16
|
-
<text text-anchor="middle" x="205.5" y="-14.3" font-family="Monaco" font-size="14.00">Variant/debug</text>
|
|
17
|
-
</g>
|
|
18
|
-
<!-- variant -->
|
|
19
|
-
<g id="node2" class="node">
|
|
20
|
-
<title>variant</title>
|
|
21
|
-
<polygon fill="lightgrey" stroke="black" points="238,-108 173,-108 173,-72 238,-72 238,-108"/>
|
|
22
|
-
<text text-anchor="middle" x="205.5" y="-86.3" font-family="Monaco" font-size="14.00">variant</text>
|
|
23
|
-
</g>
|
|
24
|
-
<!-- variant->Variant/debug -->
|
|
25
|
-
<g id="edge1" class="edge">
|
|
26
|
-
<title>variant->Variant/debug</title>
|
|
27
|
-
<path fill="none" stroke="black" d="M205.5,-71.7C205.5,-60.85 205.5,-46.92 205.5,-36.1"/>
|
|
28
|
-
</g>
|
|
29
|
-
<!-- Platform/linux -->
|
|
30
|
-
<g id="node3" class="node">
|
|
31
|
-
<title>Platform/linux</title>
|
|
32
|
-
<polygon fill="lightblue" stroke="black" stroke-width="2" points="262,-180 149,-180 149,-144 262,-144 262,-180"/>
|
|
33
|
-
<text text-anchor="middle" x="205.5" y="-158.3" font-family="Monaco" font-size="14.00">Platform/linux</text>
|
|
34
|
-
</g>
|
|
35
|
-
<!-- Platform/linux->variant -->
|
|
36
|
-
<g id="edge2" class="edge">
|
|
37
|
-
<title>Platform/linux->variant</title>
|
|
38
|
-
<path fill="none" stroke="black" d="M205.5,-143.7C205.5,-135.98 205.5,-126.71 205.5,-118.11"/>
|
|
39
|
-
<polygon fill="black" stroke="black" points="209,-118.1 205.5,-108.1 202,-118.1 209,-118.1"/>
|
|
40
|
-
</g>
|
|
41
|
-
<!-- platform -->
|
|
42
|
-
<g id="node4" class="node">
|
|
43
|
-
<title>platform</title>
|
|
44
|
-
<polygon fill="lightgrey" stroke="black" points="229,-252 154,-252 154,-216 229,-216 229,-252"/>
|
|
45
|
-
<text text-anchor="middle" x="191.5" y="-230.3" font-family="Monaco" font-size="14.00">platform</text>
|
|
46
|
-
</g>
|
|
47
|
-
<!-- platform->Platform/linux -->
|
|
48
|
-
<g id="edge3" class="edge">
|
|
49
|
-
<title>platform->Platform/linux</title>
|
|
50
|
-
<path fill="none" stroke="black" d="M194.96,-215.7C197.13,-204.85 199.92,-190.92 202.08,-180.1"/>
|
|
51
|
-
</g>
|
|
52
|
-
<!-- Compiler/clang -->
|
|
53
|
-
<g id="node5" class="node">
|
|
54
|
-
<title>Compiler/clang</title>
|
|
55
|
-
<polygon fill="lightblue" stroke="black" points="131,-180 10,-180 10,-144 131,-144 131,-180"/>
|
|
56
|
-
<text text-anchor="middle" x="70.5" y="-158.3" font-family="Monaco" font-size="14.00">Compiler/clang</text>
|
|
57
|
-
</g>
|
|
58
|
-
<!-- Language/C++14 -->
|
|
59
|
-
<g id="node6" class="node">
|
|
60
|
-
<title>Language/C++14</title>
|
|
61
|
-
<polygon fill="white" stroke="black" stroke-width="2" points="141,-324 0,-324 0,-288 141,-288 141,-324"/>
|
|
62
|
-
<text text-anchor="middle" x="70.5" y="-302.3" font-family="Monaco" font-size="14.00">Language/C++14</text>
|
|
63
|
-
</g>
|
|
64
|
-
<!-- Language/C++14->Compiler/clang -->
|
|
65
|
-
<g id="edge4" class="edge">
|
|
66
|
-
<title>Language/C++14->Compiler/clang</title>
|
|
67
|
-
<path fill="none" stroke="black" d="M70.5,-287.87C70.5,-260.58 70.5,-207.52 70.5,-180.19"/>
|
|
68
|
-
</g>
|
|
69
|
-
<!-- Language/C++17 -->
|
|
70
|
-
<g id="node7" class="node">
|
|
71
|
-
<title>Language/C++17</title>
|
|
72
|
-
<polygon fill="white" stroke="black" stroke-width="2" points="388,-252 247,-252 247,-216 388,-216 388,-252"/>
|
|
73
|
-
<text text-anchor="middle" x="317.5" y="-230.3" font-family="Monaco" font-size="14.00">Language/C++17</text>
|
|
74
|
-
</g>
|
|
75
|
-
<!-- Language/C++17->Compiler/clang -->
|
|
76
|
-
<g id="edge5" class="edge">
|
|
77
|
-
<title>Language/C++17->Compiler/clang</title>
|
|
78
|
-
<path fill="none" stroke="black" d="M257.39,-215.97C218.98,-205.08 169.34,-191.01 130.88,-180.11"/>
|
|
79
|
-
</g>
|
|
80
|
-
<!-- lib -->
|
|
81
|
-
<g id="node8" class="node">
|
|
82
|
-
<title>lib</title>
|
|
83
|
-
<polygon fill="white" stroke="black" stroke-width="2" points="289.5,-324 235.5,-324 235.5,-288 289.5,-288 289.5,-324"/>
|
|
84
|
-
<text text-anchor="middle" x="262.5" y="-302.3" font-family="Monaco" font-size="14.00">lib</text>
|
|
85
|
-
</g>
|
|
86
|
-
<!-- lib->platform -->
|
|
87
|
-
<g id="edge6" class="edge">
|
|
88
|
-
<title>lib->platform</title>
|
|
89
|
-
<path fill="none" stroke="#000000" stroke-opacity="0.372549" d="M244.95,-287.7C236.27,-279.14 225.64,-268.66 216.15,-259.3"/>
|
|
90
|
-
<polygon fill="none" stroke="#000000" stroke-opacity="0.372549" points="218.43,-256.63 208.85,-252.1 213.51,-261.62 218.43,-256.63"/>
|
|
91
|
-
</g>
|
|
92
|
-
<!-- lib->Language/C++17 -->
|
|
93
|
-
<g id="edge7" class="edge">
|
|
94
|
-
<title>lib->Language/C++17</title>
|
|
95
|
-
<path fill="none" stroke="#000000" stroke-opacity="0.372549" d="M276.1,-287.7C282.62,-279.39 290.57,-269.28 297.75,-260.14"/>
|
|
96
|
-
<polygon fill="none" stroke="#000000" stroke-opacity="0.372549" points="300.63,-262.13 304.06,-252.1 295.13,-257.81 300.63,-262.13"/>
|
|
97
|
-
</g>
|
|
98
|
-
<!-- app -->
|
|
99
|
-
<g id="node9" class="node">
|
|
100
|
-
<title>app</title>
|
|
101
|
-
<polygon fill="orange" stroke="black" stroke-width="2" points="196.5,-396 142.5,-396 142.5,-360 196.5,-360 196.5,-396"/>
|
|
102
|
-
<text text-anchor="middle" x="169.5" y="-374.3" font-family="Monaco" font-size="14.00">app</text>
|
|
103
|
-
</g>
|
|
104
|
-
<!-- app->platform -->
|
|
105
|
-
<g id="edge9" class="edge">
|
|
106
|
-
<title>app->platform</title>
|
|
107
|
-
<path fill="none" stroke="#000000" stroke-opacity="0.372549" d="M172.15,-359.87C175.9,-335.67 182.79,-291.21 187.26,-262.39"/>
|
|
108
|
-
<polygon fill="none" stroke="#000000" stroke-opacity="0.372549" points="190.76,-262.61 188.84,-252.19 183.85,-261.54 190.76,-262.61"/>
|
|
109
|
-
</g>
|
|
110
|
-
<!-- app->Language/C++14 -->
|
|
111
|
-
<g id="edge10" class="edge">
|
|
112
|
-
<title>app->Language/C++14</title>
|
|
113
|
-
<path fill="none" stroke="#000000" stroke-opacity="0.372549" d="M145.28,-359.88C132.58,-350.89 116.84,-339.76 103.08,-330.03"/>
|
|
114
|
-
<polygon fill="none" stroke="#000000" stroke-opacity="0.372549" points="105,-327.11 94.81,-324.19 100.96,-332.82 105,-327.11"/>
|
|
115
|
-
</g>
|
|
116
|
-
<!-- app->lib -->
|
|
117
|
-
<g id="edge8" class="edge">
|
|
118
|
-
<title>app->lib</title>
|
|
119
|
-
<path fill="none" stroke="#000000" stroke-opacity="0.372549" d="M192.49,-359.7C204.31,-350.8 218.89,-339.82 231.68,-330.2"/>
|
|
120
|
-
<polygon fill="none" stroke="#000000" stroke-opacity="0.372549" points="233.89,-332.91 239.78,-324.1 229.68,-327.32 233.89,-332.91"/>
|
|
121
|
-
</g>
|
|
122
|
-
<!-- tests -->
|
|
123
|
-
<g id="node10" class="node">
|
|
124
|
-
<title>tests</title>
|
|
125
|
-
<polygon fill="orange" stroke="black" stroke-width="2" points="289.5,-396 235.5,-396 235.5,-360 289.5,-360 289.5,-396"/>
|
|
126
|
-
<text text-anchor="middle" x="262.5" y="-374.3" font-family="Monaco" font-size="14.00">tests</text>
|
|
127
|
-
</g>
|
|
128
|
-
<!-- tests->platform -->
|
|
129
|
-
<g id="edge12" class="edge">
|
|
130
|
-
<title>tests->platform</title>
|
|
131
|
-
<path fill="none" stroke="#000000" stroke-opacity="0.372549" d="M249.48,-359.94C242.15,-349.84 233.15,-336.59 226.5,-324 215.89,-303.9 206.62,-279.85 200.29,-261.82"/>
|
|
132
|
-
<polygon fill="none" stroke="#000000" stroke-opacity="0.372549" points="203.55,-260.55 197,-252.23 196.93,-262.82 203.55,-260.55"/>
|
|
133
|
-
</g>
|
|
134
|
-
<!-- tests->Language/C++17 -->
|
|
135
|
-
<g id="edge13" class="edge">
|
|
136
|
-
<title>tests->Language/C++17</title>
|
|
137
|
-
<path fill="none" stroke="#000000" stroke-opacity="0.372549" d="M276.66,-359.85C284.19,-349.93 293,-336.89 298.5,-324 306.91,-304.29 311.74,-280.49 314.43,-262.46"/>
|
|
138
|
-
<polygon fill="none" stroke="#000000" stroke-opacity="0.372549" points="317.93,-262.71 315.8,-252.33 310.99,-261.76 317.93,-262.71"/>
|
|
139
|
-
</g>
|
|
140
|
-
<!-- tests->lib -->
|
|
141
|
-
<g id="edge11" class="edge">
|
|
142
|
-
<title>tests->lib</title>
|
|
143
|
-
<path fill="none" stroke="#000000" stroke-opacity="0.372549" d="M262.5,-359.7C262.5,-351.98 262.5,-342.71 262.5,-334.11"/>
|
|
144
|
-
<polygon fill="none" stroke="#000000" stroke-opacity="0.372549" points="266,-334.1 262.5,-324.1 259,-334.1 266,-334.1"/>
|
|
145
|
-
</g>
|
|
146
|
-
</g>
|
|
147
|
-
</svg>
|