build-dependency 1.4.0 → 1.5.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
- 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.
|