build-dependency 1.4.0 → 1.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/full.svg +38 -38
- data/lib/build/dependency/chain.rb +5 -5
- data/lib/build/dependency/partial_chain.rb +1 -1
- data/lib/build/dependency/provider.rb +6 -10
- data/lib/build/dependency/version.rb +1 -1
- data/partial.svg +28 -28
- data/spec/build/dependency/partial_chain_spec.rb +8 -7
- data/visualization.svg +46 -46
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9236cf152a638f590bd6b887b79179a706dd5cdef4bfaad8ed75c41b956fdcf7
|
4
|
+
data.tar.gz: 6c8cd9b5d0eefa02ee71d52861bb3d769afeb4348da24e7c7d8f12ec733bb7d2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3d08f07bffa517b0738c0add435be02e7962e340b228c7387b3317ac389d0e3619872d4ed36de711c0315b3e6532c80cb9ddfc42a0b92fe2249ded07a4d12461
|
7
|
+
data.tar.gz: 17b480f3cc40aa3b680ee5afe736dfee5c0b4dd3b110525013594131625e671f3e1360be2f39e698c3be55daab6e381ef3630421e82343bd3d84614b7f95e412
|
data/full.svg
CHANGED
@@ -1,123 +1,123 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
2
2
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
3
3
|
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
4
|
-
<!-- Generated by graphviz version 2.
|
4
|
+
<!-- Generated by graphviz version 2.42.1 (0)
|
5
5
|
-->
|
6
6
|
<!-- Title: G Pages: 1 -->
|
7
|
-
<svg width="
|
8
|
-
viewBox="0.00 0.00
|
7
|
+
<svg width="354pt" height="404pt"
|
8
|
+
viewBox="0.00 0.00 353.50 404.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
9
9
|
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 400)">
|
10
10
|
<title>G</title>
|
11
|
-
<polygon fill="
|
11
|
+
<polygon fill="white" stroke="transparent" points="-4,4 -4,-400 349.5,-400 349.5,4 -4,4"/>
|
12
12
|
<!-- Variant/debug -->
|
13
13
|
<g id="node1" class="node">
|
14
14
|
<title>Variant/debug</title>
|
15
|
-
<polygon fill="
|
16
|
-
<text text-anchor="middle" x="
|
15
|
+
<polygon fill="lightblue" stroke="black" stroke-width="2" points="114,-36 0,-36 0,0 114,0 114,-36"/>
|
16
|
+
<text text-anchor="middle" x="57" y="-14.3" font-family="Monaco" font-size="14.00">Variant/debug</text>
|
17
17
|
</g>
|
18
18
|
<!-- variant -->
|
19
19
|
<g id="node2" class="node">
|
20
20
|
<title>variant</title>
|
21
|
-
<polygon fill="
|
22
|
-
<text text-anchor="middle" x="
|
21
|
+
<polygon fill="lightgrey" stroke="black" points="89.5,-108 24.5,-108 24.5,-72 89.5,-72 89.5,-108"/>
|
22
|
+
<text text-anchor="middle" x="57" y="-86.3" font-family="Monaco" font-size="14.00">variant</text>
|
23
23
|
</g>
|
24
24
|
<!-- variant->Variant/debug -->
|
25
25
|
<g id="edge1" class="edge">
|
26
26
|
<title>variant->Variant/debug</title>
|
27
|
-
<path fill="none" stroke="
|
27
|
+
<path fill="none" stroke="black" d="M57,-71.7C57,-60.85 57,-46.92 57,-36.1"/>
|
28
28
|
</g>
|
29
29
|
<!-- Platform/linux -->
|
30
30
|
<g id="node3" class="node">
|
31
31
|
<title>Platform/linux</title>
|
32
|
-
<polygon fill="
|
33
|
-
<text text-anchor="middle" x="
|
32
|
+
<polygon fill="lightblue" stroke="black" stroke-width="2" points="113.5,-180 0.5,-180 0.5,-144 113.5,-144 113.5,-180"/>
|
33
|
+
<text text-anchor="middle" x="57" y="-158.3" font-family="Monaco" font-size="14.00">Platform/linux</text>
|
34
34
|
</g>
|
35
35
|
<!-- Platform/linux->variant -->
|
36
36
|
<g id="edge2" class="edge">
|
37
37
|
<title>Platform/linux->variant</title>
|
38
|
-
<path fill="none" stroke="
|
39
|
-
<polygon fill="
|
38
|
+
<path fill="none" stroke="black" d="M57,-143.7C57,-135.98 57,-126.71 57,-118.11"/>
|
39
|
+
<polygon fill="black" stroke="black" points="60.5,-118.1 57,-108.1 53.5,-118.1 60.5,-118.1"/>
|
40
40
|
</g>
|
41
41
|
<!-- platform -->
|
42
42
|
<g id="node4" class="node">
|
43
43
|
<title>platform</title>
|
44
|
-
<polygon fill="
|
45
|
-
<text text-anchor="middle" x="
|
44
|
+
<polygon fill="lightgrey" stroke="black" points="94.5,-252 19.5,-252 19.5,-216 94.5,-216 94.5,-252"/>
|
45
|
+
<text text-anchor="middle" x="57" y="-230.3" font-family="Monaco" font-size="14.00">platform</text>
|
46
46
|
</g>
|
47
47
|
<!-- platform->Platform/linux -->
|
48
48
|
<g id="edge3" class="edge">
|
49
49
|
<title>platform->Platform/linux</title>
|
50
|
-
<path fill="none" stroke="
|
50
|
+
<path fill="none" stroke="black" d="M57,-215.7C57,-204.85 57,-190.92 57,-180.1"/>
|
51
51
|
</g>
|
52
52
|
<!-- Compiler/clang -->
|
53
53
|
<g id="node5" class="node">
|
54
54
|
<title>Compiler/clang</title>
|
55
|
-
<polygon fill="
|
56
|
-
<text text-anchor="middle" x="
|
55
|
+
<polygon fill="lightblue" stroke="black" points="297.5,-180 176.5,-180 176.5,-144 297.5,-144 297.5,-180"/>
|
56
|
+
<text text-anchor="middle" x="237" y="-158.3" font-family="Monaco" font-size="14.00">Compiler/clang</text>
|
57
57
|
</g>
|
58
58
|
<!-- Language/C++14 -->
|
59
59
|
<g id="node6" class="node">
|
60
60
|
<title>Language/C++14</title>
|
61
|
-
<polygon fill="
|
62
|
-
<text text-anchor="middle" x="
|
61
|
+
<polygon fill="white" stroke="black" stroke-width="2" points="345.5,-324 204.5,-324 204.5,-288 345.5,-288 345.5,-324"/>
|
62
|
+
<text text-anchor="middle" x="275" y="-302.3" font-family="Monaco" font-size="14.00">Language/C++14</text>
|
63
63
|
</g>
|
64
64
|
<!-- Language/C++14->Compiler/clang -->
|
65
65
|
<g id="edge4" class="edge">
|
66
66
|
<title>Language/C++14->Compiler/clang</title>
|
67
|
-
<path fill="none" stroke="
|
67
|
+
<path fill="none" stroke="black" d="M274.33,-287.92C273.23,-269.75 270.39,-240.32 263,-216 259.19,-203.45 252.69,-190.2 247.14,-180.09"/>
|
68
68
|
</g>
|
69
69
|
<!-- Language/C++17 -->
|
70
70
|
<g id="node7" class="node">
|
71
71
|
<title>Language/C++17</title>
|
72
|
-
<polygon fill="
|
73
|
-
<text text-anchor="middle" x="
|
72
|
+
<polygon fill="white" stroke="black" stroke-width="2" points="253.5,-252 112.5,-252 112.5,-216 253.5,-216 253.5,-252"/>
|
73
|
+
<text text-anchor="middle" x="183" y="-230.3" font-family="Monaco" font-size="14.00">Language/C++17</text>
|
74
74
|
</g>
|
75
75
|
<!-- Language/C++17->Compiler/clang -->
|
76
76
|
<g id="edge5" class="edge">
|
77
77
|
<title>Language/C++17->Compiler/clang</title>
|
78
|
-
<path fill="none" stroke="
|
78
|
+
<path fill="none" stroke="black" d="M196.35,-215.7C204.72,-204.85 215.46,-190.92 223.81,-180.1"/>
|
79
79
|
</g>
|
80
80
|
<!-- lib -->
|
81
81
|
<g id="node8" class="node">
|
82
82
|
<title>lib</title>
|
83
|
-
<polygon fill="
|
84
|
-
<text text-anchor="middle" x="
|
83
|
+
<polygon fill="orange" stroke="black" stroke-width="2" points="179,-324 125,-324 125,-288 179,-288 179,-324"/>
|
84
|
+
<text text-anchor="middle" x="152" y="-302.3" font-family="Monaco" font-size="14.00">lib</text>
|
85
85
|
</g>
|
86
86
|
<!-- lib->platform -->
|
87
87
|
<g id="edge6" class="edge">
|
88
88
|
<title>lib->platform</title>
|
89
|
-
<path fill="none" stroke="#000000" stroke-opacity="0.372549" d="
|
90
|
-
<polygon fill="none" stroke="#000000" stroke-opacity="0.372549" points="
|
89
|
+
<path fill="none" stroke="#000000" stroke-opacity="0.372549" d="M128.52,-287.7C116.44,-278.8 101.55,-267.82 88.48,-258.2"/>
|
90
|
+
<polygon fill="none" stroke="#000000" stroke-opacity="0.372549" points="90.34,-255.22 80.21,-252.1 86.19,-260.85 90.34,-255.22"/>
|
91
91
|
</g>
|
92
92
|
<!-- lib->Language/C++17 -->
|
93
93
|
<g id="edge7" class="edge">
|
94
94
|
<title>lib->Language/C++17</title>
|
95
|
-
<path fill="none" stroke="#000000" stroke-opacity="0.372549" d="
|
96
|
-
<polygon fill="none" stroke="#000000" stroke-opacity="0.372549" points="
|
95
|
+
<path fill="none" stroke="#000000" stroke-opacity="0.372549" d="M159.66,-287.7C163.19,-279.73 167.46,-270.1 171.37,-261.26"/>
|
96
|
+
<polygon fill="none" stroke="#000000" stroke-opacity="0.372549" points="174.58,-262.67 175.43,-252.1 168.18,-259.83 174.58,-262.67"/>
|
97
97
|
</g>
|
98
98
|
<!-- app -->
|
99
99
|
<g id="node9" class="node">
|
100
100
|
<title>app</title>
|
101
|
-
<polygon fill="
|
102
|
-
<text text-anchor="middle" x="
|
101
|
+
<polygon fill="orange" stroke="black" stroke-width="2" points="179,-396 125,-396 125,-360 179,-360 179,-396"/>
|
102
|
+
<text text-anchor="middle" x="152" y="-374.3" font-family="Monaco" font-size="14.00">app</text>
|
103
103
|
</g>
|
104
104
|
<!-- app->platform -->
|
105
105
|
<g id="edge9" class="edge">
|
106
106
|
<title>app->platform</title>
|
107
|
-
<path fill="none" stroke="#000000" stroke-opacity="0.372549" d="
|
108
|
-
<polygon fill="none" stroke="#000000" stroke-opacity="0.372549" points="
|
107
|
+
<path fill="none" stroke="#000000" stroke-opacity="0.372549" d="M140.28,-359.85C133.22,-349.49 124.06,-336.01 116,-324 101.75,-302.76 85.72,-278.57 73.98,-260.77"/>
|
108
|
+
<polygon fill="none" stroke="#000000" stroke-opacity="0.372549" points="76.68,-258.52 68.25,-252.1 70.84,-262.37 76.68,-258.52"/>
|
109
109
|
</g>
|
110
110
|
<!-- app->Language/C++14 -->
|
111
111
|
<g id="edge10" class="edge">
|
112
112
|
<title>app->Language/C++14</title>
|
113
|
-
<path fill="none" stroke="#000000" stroke-opacity="0.372549" d="
|
114
|
-
<polygon fill="none" stroke="#000000" stroke-opacity="0.372549" points="
|
113
|
+
<path fill="none" stroke="#000000" stroke-opacity="0.372549" d="M179.3,-361.46C195.96,-351.98 217.54,-339.7 235.99,-329.2"/>
|
114
|
+
<polygon fill="none" stroke="#000000" stroke-opacity="0.372549" points="237.8,-332.2 244.76,-324.21 234.34,-326.12 237.8,-332.2"/>
|
115
115
|
</g>
|
116
116
|
<!-- app->lib -->
|
117
117
|
<g id="edge8" class="edge">
|
118
118
|
<title>app->lib</title>
|
119
|
-
<path fill="none" stroke="#000000" stroke-opacity="0.372549" d="
|
120
|
-
<polygon fill="none" stroke="#000000" stroke-opacity="0.372549" points="
|
119
|
+
<path fill="none" stroke="#000000" stroke-opacity="0.372549" d="M152,-359.7C152,-351.98 152,-342.71 152,-334.11"/>
|
120
|
+
<polygon fill="none" stroke="#000000" stroke-opacity="0.372549" points="155.5,-334.1 152,-324.1 148.5,-334.1 155.5,-334.1"/>
|
121
121
|
</g>
|
122
122
|
</g>
|
123
123
|
</svg>
|
@@ -41,20 +41,20 @@ module Build
|
|
41
41
|
def initialize(dependencies, providers, selection = [])
|
42
42
|
super()
|
43
43
|
|
44
|
-
# Explicitly selected dependencies which will be used when resolving ambiguity:
|
45
44
|
@selection = ::Set.new(selection)
|
46
|
-
|
47
|
-
# The list of dependencies that needs to be satisfied:
|
48
45
|
@dependencies = dependencies.collect{|dependency| Depends[dependency]}
|
49
|
-
|
50
|
-
# The available providers which match up to required dependencies:
|
51
46
|
@providers = providers
|
52
47
|
|
53
48
|
expand_top
|
54
49
|
end
|
55
50
|
|
51
|
+
# @attr [Set<String>] Explicitly selected dependencies which will be used when resolving ambiguity.
|
56
52
|
attr :selection
|
53
|
+
|
54
|
+
# @attr [Array<Depends>] The list of dependencies that needs to be satisfied.
|
57
55
|
attr :dependencies
|
56
|
+
|
57
|
+
# @attr [Array] The available providers which will be used to satisfy he required dependencies.
|
58
58
|
attr :providers
|
59
59
|
|
60
60
|
def freeze
|
@@ -43,7 +43,6 @@ module Build
|
|
43
43
|
|
44
44
|
@chain = chain
|
45
45
|
|
46
|
-
# The list of dependencies that needs to be satisfied:
|
47
46
|
@dependencies = dependencies.collect{|dependency| Depends[dependency]}
|
48
47
|
|
49
48
|
expand_top
|
@@ -53,6 +52,7 @@ module Build
|
|
53
52
|
@chain.selection
|
54
53
|
end
|
55
54
|
|
55
|
+
# @attr [Array<Depends>] The list of dependencies that needs to be satisfied.
|
56
56
|
attr :dependencies
|
57
57
|
|
58
58
|
def providers
|
@@ -73,11 +73,9 @@ module Build
|
|
73
73
|
end
|
74
74
|
end
|
75
75
|
|
76
|
-
Depends = Struct.new(:name) do
|
76
|
+
Depends = Struct.new(:name, :options) do
|
77
77
|
def initialize(name, **options)
|
78
|
-
super(name)
|
79
|
-
|
80
|
-
@options = options
|
78
|
+
super(name, options)
|
81
79
|
end
|
82
80
|
|
83
81
|
def wildcard?
|
@@ -92,22 +90,20 @@ module Build
|
|
92
90
|
end
|
93
91
|
end
|
94
92
|
|
95
|
-
attr :options
|
96
|
-
|
97
93
|
def to_s
|
98
|
-
if
|
99
|
-
"depends on #{name.inspect} #{
|
94
|
+
if options.any?
|
95
|
+
"depends on #{name.inspect} #{options.inspect}"
|
100
96
|
else
|
101
97
|
"depends on #{name.inspect}"
|
102
98
|
end
|
103
99
|
end
|
104
100
|
|
105
101
|
def public?
|
106
|
-
|
102
|
+
!!options[:public]
|
107
103
|
end
|
108
104
|
|
109
105
|
def private?
|
110
|
-
|
106
|
+
!!options[:private]
|
111
107
|
end
|
112
108
|
|
113
109
|
def alias?
|
data/partial.svg
CHANGED
@@ -1,93 +1,93 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
2
2
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
3
3
|
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
4
|
-
<!-- Generated by graphviz version 2.
|
4
|
+
<!-- Generated by graphviz version 2.42.1 (0)
|
5
5
|
-->
|
6
6
|
<!-- Title: G Pages: 1 -->
|
7
|
-
<svg width="
|
8
|
-
viewBox="0.00 0.00
|
7
|
+
<svg width="463pt" height="332pt"
|
8
|
+
viewBox="0.00 0.00 462.50 332.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
9
9
|
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 328)">
|
10
10
|
<title>G</title>
|
11
|
-
<polygon fill="
|
11
|
+
<polygon fill="white" stroke="transparent" points="-4,4 -4,-328 458.5,-328 458.5,4 -4,4"/>
|
12
12
|
<!-- Variant/debug -->
|
13
13
|
<g id="node1" class="node">
|
14
14
|
<title>Variant/debug</title>
|
15
|
-
<polygon fill="
|
16
|
-
<text text-anchor="middle" x="
|
15
|
+
<polygon fill="lightblue" stroke="black" stroke-width="2" points="114,-36 0,-36 0,0 114,0 114,-36"/>
|
16
|
+
<text text-anchor="middle" x="57" y="-14.3" font-family="Monaco" font-size="14.00">Variant/debug</text>
|
17
17
|
</g>
|
18
18
|
<!-- variant -->
|
19
19
|
<g id="node2" class="node">
|
20
20
|
<title>variant</title>
|
21
|
-
<polygon fill="
|
22
|
-
<text text-anchor="middle" x="
|
21
|
+
<polygon fill="lightgrey" stroke="black" points="89.5,-108 24.5,-108 24.5,-72 89.5,-72 89.5,-108"/>
|
22
|
+
<text text-anchor="middle" x="57" y="-86.3" font-family="Monaco" font-size="14.00">variant</text>
|
23
23
|
</g>
|
24
24
|
<!-- variant->Variant/debug -->
|
25
25
|
<g id="edge1" class="edge">
|
26
26
|
<title>variant->Variant/debug</title>
|
27
|
-
<path fill="none" stroke="
|
27
|
+
<path fill="none" stroke="black" d="M57,-71.7C57,-60.85 57,-46.92 57,-36.1"/>
|
28
28
|
</g>
|
29
29
|
<!-- Platform/linux -->
|
30
30
|
<g id="node3" class="node">
|
31
31
|
<title>Platform/linux</title>
|
32
|
-
<polygon fill="
|
33
|
-
<text text-anchor="middle" x="
|
32
|
+
<polygon fill="lightblue" stroke="black" stroke-width="2" points="113.5,-180 0.5,-180 0.5,-144 113.5,-144 113.5,-180"/>
|
33
|
+
<text text-anchor="middle" x="57" y="-158.3" font-family="Monaco" font-size="14.00">Platform/linux</text>
|
34
34
|
</g>
|
35
35
|
<!-- Platform/linux->variant -->
|
36
36
|
<g id="edge2" class="edge">
|
37
37
|
<title>Platform/linux->variant</title>
|
38
|
-
<path fill="none" stroke="
|
39
|
-
<polygon fill="
|
38
|
+
<path fill="none" stroke="black" d="M57,-143.7C57,-135.98 57,-126.71 57,-118.11"/>
|
39
|
+
<polygon fill="black" stroke="black" points="60.5,-118.1 57,-108.1 53.5,-118.1 60.5,-118.1"/>
|
40
40
|
</g>
|
41
41
|
<!-- platform -->
|
42
42
|
<g id="node4" class="node">
|
43
43
|
<title>platform</title>
|
44
|
-
<polygon fill="
|
45
|
-
<text text-anchor="middle" x="
|
44
|
+
<polygon fill="lightgrey" stroke="black" points="94.5,-252 19.5,-252 19.5,-216 94.5,-216 94.5,-252"/>
|
45
|
+
<text text-anchor="middle" x="57" y="-230.3" font-family="Monaco" font-size="14.00">platform</text>
|
46
46
|
</g>
|
47
47
|
<!-- platform->Platform/linux -->
|
48
48
|
<g id="edge3" class="edge">
|
49
49
|
<title>platform->Platform/linux</title>
|
50
|
-
<path fill="none" stroke="
|
50
|
+
<path fill="none" stroke="black" d="M57,-215.7C57,-204.85 57,-190.92 57,-180.1"/>
|
51
51
|
</g>
|
52
52
|
<!-- lib -->
|
53
53
|
<g id="node5" class="node">
|
54
54
|
<title>lib</title>
|
55
|
-
<polygon fill="
|
56
|
-
<text text-anchor="middle" x="
|
55
|
+
<polygon fill="orange" stroke="black" stroke-width="2" points="84,-324 30,-324 30,-288 84,-288 84,-324"/>
|
56
|
+
<text text-anchor="middle" x="57" y="-302.3" font-family="Monaco" font-size="14.00">lib</text>
|
57
57
|
</g>
|
58
58
|
<!-- lib->platform -->
|
59
59
|
<g id="edge4" class="edge">
|
60
60
|
<title>lib->platform</title>
|
61
|
-
<path fill="none" stroke="#000000" stroke-opacity="0.372549" d="
|
62
|
-
<polygon fill="none" stroke="#000000" stroke-opacity="0.372549" points="
|
61
|
+
<path fill="none" stroke="#000000" stroke-opacity="0.372549" d="M57,-287.7C57,-279.98 57,-270.71 57,-262.11"/>
|
62
|
+
<polygon fill="none" stroke="#000000" stroke-opacity="0.372549" points="60.5,-262.1 57,-252.1 53.5,-262.1 60.5,-262.1"/>
|
63
63
|
</g>
|
64
64
|
<!-- Compiler/clang -->
|
65
65
|
<g id="node6" class="node">
|
66
66
|
<title>Compiler/clang</title>
|
67
|
-
<polygon fill="
|
68
|
-
<text text-anchor="middle" x="
|
67
|
+
<polygon fill="lightblue" stroke="black" points="327.5,-180 206.5,-180 206.5,-144 327.5,-144 327.5,-180"/>
|
68
|
+
<text text-anchor="middle" x="267" y="-158.3" font-family="Monaco" font-size="14.00">Compiler/clang</text>
|
69
69
|
</g>
|
70
70
|
<!-- Language/C++14 -->
|
71
71
|
<g id="node7" class="node">
|
72
72
|
<title>Language/C++14</title>
|
73
|
-
<polygon fill="
|
74
|
-
<text text-anchor="middle" x="
|
73
|
+
<polygon fill="white" stroke="black" stroke-width="2" points="295.5,-252 154.5,-252 154.5,-216 295.5,-216 295.5,-252"/>
|
74
|
+
<text text-anchor="middle" x="225" y="-230.3" font-family="Monaco" font-size="14.00">Language/C++14</text>
|
75
75
|
</g>
|
76
76
|
<!-- Language/C++14->Compiler/clang -->
|
77
77
|
<g id="edge5" class="edge">
|
78
78
|
<title>Language/C++14->Compiler/clang</title>
|
79
|
-
<path fill="none" stroke="
|
79
|
+
<path fill="none" stroke="black" d="M235.38,-215.7C241.89,-204.85 250.25,-190.92 256.74,-180.1"/>
|
80
80
|
</g>
|
81
81
|
<!-- Language/C++17 -->
|
82
82
|
<g id="node8" class="node">
|
83
83
|
<title>Language/C++17</title>
|
84
|
-
<polygon fill="
|
85
|
-
<text text-anchor="middle" x="
|
84
|
+
<polygon fill="white" stroke="black" points="454.5,-252 313.5,-252 313.5,-216 454.5,-216 454.5,-252"/>
|
85
|
+
<text text-anchor="middle" x="384" y="-230.3" font-family="Monaco" font-size="14.00">Language/C++17</text>
|
86
86
|
</g>
|
87
87
|
<!-- Language/C++17->Compiler/clang -->
|
88
88
|
<g id="edge6" class="edge">
|
89
89
|
<title>Language/C++17->Compiler/clang</title>
|
90
|
-
<path fill="none" stroke="
|
90
|
+
<path fill="none" stroke="black" d="M355.38,-215.88C337.25,-205.03 313.88,-191.05 295.73,-180.19"/>
|
91
91
|
</g>
|
92
92
|
</g>
|
93
93
|
</svg>
|
@@ -30,8 +30,8 @@ RSpec.describe Build::Dependency::PartialChain do
|
|
30
30
|
expect(chain.ordered).to be == [
|
31
31
|
variant.resolution_for(Build::Dependency::Depends.new('Variant/debug')),
|
32
32
|
platform.resolution_for(Build::Dependency::Depends.new('Platform/linux')),
|
33
|
-
compiler.resolution_for(Build::Dependency::Depends.new("Language/C++17")),
|
34
|
-
lib.resolution_for(Build::Dependency::Depends.new('lib')),
|
33
|
+
compiler.resolution_for(Build::Dependency::Depends.new("Language/C++17", private: true)),
|
34
|
+
lib.resolution_for(Build::Dependency::Depends.new('lib', private: true)),
|
35
35
|
app.resolution_for(Build::Dependency::Depends.new('app')),
|
36
36
|
]
|
37
37
|
end
|
@@ -40,10 +40,11 @@ RSpec.describe Build::Dependency::PartialChain do
|
|
40
40
|
expect(chain.provisions).to be == [
|
41
41
|
variant.provision_for(Build::Dependency::Depends.new('Variant/debug')),
|
42
42
|
platform.provision_for(Build::Dependency::Depends.new('Platform/linux')),
|
43
|
-
compiler.provision_for(Build::Dependency::Depends.new('Language/C++17')),
|
44
|
-
lib.provision_for(Build::Dependency::Depends.new('lib')),
|
45
|
-
compiler.provision_for(Build::Dependency::Depends.new('Language/C++14')),
|
43
|
+
compiler.provision_for(Build::Dependency::Depends.new('Language/C++17', private: true)),
|
44
|
+
lib.provision_for(Build::Dependency::Depends.new('lib', private: true)),
|
45
|
+
compiler.provision_for(Build::Dependency::Depends.new('Language/C++14', private: true)),
|
46
46
|
app.provision_for(Build::Dependency::Depends.new('app')),
|
47
|
+
lib.provision_for(Build::Dependency::Depends.new('lib')),
|
47
48
|
]
|
48
49
|
|
49
50
|
graph = visualization.generate(chain)
|
@@ -57,8 +58,8 @@ RSpec.describe Build::Dependency::PartialChain do
|
|
57
58
|
expect(subject.ordered).to be == [
|
58
59
|
variant.resolution_for(Build::Dependency::Depends.new('Variant/debug')),
|
59
60
|
platform.resolution_for(Build::Dependency::Depends.new('Platform/linux')),
|
60
|
-
lib.resolution_for(Build::Dependency::Depends.new('lib')),
|
61
|
-
compiler.resolution_for(Build::Dependency::Depends.new("Language/C++14")),
|
61
|
+
lib.resolution_for(Build::Dependency::Depends.new('lib', private: true)),
|
62
|
+
compiler.resolution_for(Build::Dependency::Depends.new("Language/C++14", private: true)),
|
62
63
|
]
|
63
64
|
|
64
65
|
graph = visualization.generate(subject)
|
data/visualization.svg
CHANGED
@@ -1,147 +1,147 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
2
2
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
3
3
|
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
4
|
-
<!-- Generated by graphviz version 2.
|
4
|
+
<!-- Generated by graphviz version 2.42.1 (0)
|
5
5
|
-->
|
6
6
|
<!-- Title: G Pages: 1 -->
|
7
|
-
<svg width="
|
8
|
-
viewBox="0.00 0.00
|
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
9
|
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 400)">
|
10
10
|
<title>G</title>
|
11
|
-
<polygon fill="
|
11
|
+
<polygon fill="white" stroke="transparent" points="-4,4 -4,-400 392,-400 392,4 -4,4"/>
|
12
12
|
<!-- Variant/debug -->
|
13
13
|
<g id="node1" class="node">
|
14
14
|
<title>Variant/debug</title>
|
15
|
-
<polygon fill="
|
16
|
-
<text text-anchor="middle" x="
|
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
17
|
</g>
|
18
18
|
<!-- variant -->
|
19
19
|
<g id="node2" class="node">
|
20
20
|
<title>variant</title>
|
21
|
-
<polygon fill="
|
22
|
-
<text text-anchor="middle" x="
|
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
23
|
</g>
|
24
24
|
<!-- variant->Variant/debug -->
|
25
25
|
<g id="edge1" class="edge">
|
26
26
|
<title>variant->Variant/debug</title>
|
27
|
-
<path fill="none" stroke="
|
27
|
+
<path fill="none" stroke="black" d="M205.5,-71.7C205.5,-60.85 205.5,-46.92 205.5,-36.1"/>
|
28
28
|
</g>
|
29
29
|
<!-- Platform/linux -->
|
30
30
|
<g id="node3" class="node">
|
31
31
|
<title>Platform/linux</title>
|
32
|
-
<polygon fill="
|
33
|
-
<text text-anchor="middle" x="
|
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
34
|
</g>
|
35
35
|
<!-- Platform/linux->variant -->
|
36
36
|
<g id="edge2" class="edge">
|
37
37
|
<title>Platform/linux->variant</title>
|
38
|
-
<path fill="none" stroke="
|
39
|
-
<polygon fill="
|
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
40
|
</g>
|
41
41
|
<!-- platform -->
|
42
42
|
<g id="node4" class="node">
|
43
43
|
<title>platform</title>
|
44
|
-
<polygon fill="
|
45
|
-
<text text-anchor="middle" x="191" y="-230.3" font-family="Monaco" font-size="14.00"
|
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
46
|
</g>
|
47
47
|
<!-- platform->Platform/linux -->
|
48
48
|
<g id="edge3" class="edge">
|
49
49
|
<title>platform->Platform/linux</title>
|
50
|
-
<path fill="none" stroke="
|
50
|
+
<path fill="none" stroke="black" d="M194.96,-215.7C197.13,-204.85 199.92,-190.92 202.08,-180.1"/>
|
51
51
|
</g>
|
52
52
|
<!-- Compiler/clang -->
|
53
53
|
<g id="node5" class="node">
|
54
54
|
<title>Compiler/clang</title>
|
55
|
-
<polygon fill="
|
56
|
-
<text text-anchor="middle" x="
|
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
57
|
</g>
|
58
58
|
<!-- Language/C++14 -->
|
59
59
|
<g id="node6" class="node">
|
60
60
|
<title>Language/C++14</title>
|
61
|
-
<polygon fill="
|
62
|
-
<text text-anchor="middle" x="
|
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
63
|
</g>
|
64
64
|
<!-- Language/C++14->Compiler/clang -->
|
65
65
|
<g id="edge4" class="edge">
|
66
66
|
<title>Language/C++14->Compiler/clang</title>
|
67
|
-
<path fill="none" stroke="
|
67
|
+
<path fill="none" stroke="black" d="M70.5,-287.87C70.5,-260.58 70.5,-207.52 70.5,-180.19"/>
|
68
68
|
</g>
|
69
69
|
<!-- Language/C++17 -->
|
70
70
|
<g id="node7" class="node">
|
71
71
|
<title>Language/C++17</title>
|
72
|
-
<polygon fill="
|
73
|
-
<text text-anchor="middle" x="
|
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
74
|
</g>
|
75
75
|
<!-- Language/C++17->Compiler/clang -->
|
76
76
|
<g id="edge5" class="edge">
|
77
77
|
<title>Language/C++17->Compiler/clang</title>
|
78
|
-
<path fill="none" stroke="
|
78
|
+
<path fill="none" stroke="black" d="M257.39,-215.97C218.98,-205.08 169.34,-191.01 130.88,-180.11"/>
|
79
79
|
</g>
|
80
80
|
<!-- lib -->
|
81
81
|
<g id="node8" class="node">
|
82
82
|
<title>lib</title>
|
83
|
-
<polygon fill="
|
84
|
-
<text text-anchor="middle" x="
|
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
85
|
</g>
|
86
86
|
<!-- lib->platform -->
|
87
87
|
<g id="edge6" class="edge">
|
88
88
|
<title>lib->platform</title>
|
89
|
-
<path fill="none" stroke="#000000" stroke-opacity="0.372549" d="
|
90
|
-
<polygon fill="none" stroke="#000000" stroke-opacity="0.372549" points="
|
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
91
|
</g>
|
92
92
|
<!-- lib->Language/C++17 -->
|
93
93
|
<g id="edge7" class="edge">
|
94
94
|
<title>lib->Language/C++17</title>
|
95
|
-
<path fill="none" stroke="#000000" stroke-opacity="0.372549" d="
|
96
|
-
<polygon fill="none" stroke="#000000" stroke-opacity="0.372549" points="
|
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
97
|
</g>
|
98
98
|
<!-- app -->
|
99
99
|
<g id="node9" class="node">
|
100
100
|
<title>app</title>
|
101
|
-
<polygon fill="
|
102
|
-
<text text-anchor="middle" x="
|
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
103
|
</g>
|
104
104
|
<!-- app->platform -->
|
105
105
|
<g id="edge9" class="edge">
|
106
106
|
<title>app->platform</title>
|
107
|
-
<path fill="none" stroke="#000000" stroke-opacity="0.372549" d="
|
108
|
-
<polygon fill="none" stroke="#000000" stroke-opacity="0.372549" points="190.
|
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
109
|
</g>
|
110
110
|
<!-- app->Language/C++14 -->
|
111
111
|
<g id="edge10" class="edge">
|
112
112
|
<title>app->Language/C++14</title>
|
113
|
-
<path fill="none" stroke="#000000" stroke-opacity="0.372549" d="
|
114
|
-
<polygon fill="none" stroke="#000000" stroke-opacity="0.372549" points="
|
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
115
|
</g>
|
116
116
|
<!-- app->lib -->
|
117
117
|
<g id="edge8" class="edge">
|
118
118
|
<title>app->lib</title>
|
119
|
-
<path fill="none" stroke="#000000" stroke-opacity="0.372549" d="
|
120
|
-
<polygon fill="none" stroke="#000000" stroke-opacity="0.372549" points="
|
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
121
|
</g>
|
122
122
|
<!-- tests -->
|
123
123
|
<g id="node10" class="node">
|
124
124
|
<title>tests</title>
|
125
|
-
<polygon fill="
|
126
|
-
<text text-anchor="middle" x="
|
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
127
|
</g>
|
128
128
|
<!-- tests->platform -->
|
129
129
|
<g id="edge12" class="edge">
|
130
130
|
<title>tests->platform</title>
|
131
|
-
<path fill="none" stroke="#000000" stroke-opacity="0.372549" d="
|
132
|
-
<polygon fill="none" stroke="#000000" stroke-opacity="0.372549" points="
|
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
133
|
</g>
|
134
134
|
<!-- tests->Language/C++17 -->
|
135
135
|
<g id="edge13" class="edge">
|
136
136
|
<title>tests->Language/C++17</title>
|
137
|
-
<path fill="none" stroke="#000000" stroke-opacity="0.372549" d="
|
138
|
-
<polygon fill="none" stroke="#000000" stroke-opacity="0.372549" points="
|
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
139
|
</g>
|
140
140
|
<!-- tests->lib -->
|
141
141
|
<g id="edge11" class="edge">
|
142
142
|
<title>tests->lib</title>
|
143
|
-
<path fill="none" stroke="#000000" stroke-opacity="0.372549" d="
|
144
|
-
<polygon fill="none" stroke="#000000" stroke-opacity="0.372549" points="
|
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
145
|
</g>
|
146
146
|
</g>
|
147
147
|
</svg>
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: build-dependency
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Samuel Williams
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-10-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: graphviz
|
@@ -134,7 +134,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
134
134
|
- !ruby/object:Gem::Version
|
135
135
|
version: '0'
|
136
136
|
requirements: []
|
137
|
-
rubygems_version: 3.0.
|
137
|
+
rubygems_version: 3.0.4
|
138
138
|
signing_key:
|
139
139
|
specification_version: 4
|
140
140
|
summary: A set of data structures and algorithms for dependency resolution.
|