Mon, 01 Dec 2025 21:27:09 +0100
resolve dependencies between standard config vars
fixes #768
|
0
38775db5fdf5
add existing source
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
1 | package de.unixwork.uwproj; |
|
38775db5fdf5
add existing source
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
2 | |
|
38775db5fdf5
add existing source
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
3 | import org.w3c.dom.Element; |
|
38775db5fdf5
add existing source
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
4 | |
| 41 | 5 | import java.util.Arrays; |
|
40
b42bfc9e9983
first minor code improvements
Mike Becker <universe@uap-core.de>
parents:
0
diff
changeset
|
6 | import java.util.LinkedList; |
|
b42bfc9e9983
first minor code improvements
Mike Becker <universe@uap-core.de>
parents:
0
diff
changeset
|
7 | import java.util.List; |
|
b42bfc9e9983
first minor code improvements
Mike Becker <universe@uap-core.de>
parents:
0
diff
changeset
|
8 | |
|
92
5a32534f2604
fix empty dependencies element producing broken configure script - fixes #336
Mike Becker <universe@uap-core.de>
parents:
78
diff
changeset
|
9 | import static java.util.function.Predicate.not; |
|
78
c3a62e0baa9e
fix special chars in dependency names are breaking configure - fixes #312
Mike Becker <universe@uap-core.de>
parents:
41
diff
changeset
|
10 | |
|
0
38775db5fdf5
add existing source
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
11 | public class TargetData { |
|
40
b42bfc9e9983
first minor code improvements
Mike Becker <universe@uap-core.de>
parents:
0
diff
changeset
|
12 | private final List<Define> defines = new LinkedList<>(); |
|
b42bfc9e9983
first minor code improvements
Mike Becker <universe@uap-core.de>
parents:
0
diff
changeset
|
13 | private final List<String> dependencies = new LinkedList<>(); |
|
113
24f32dbd88cd
minimize application code
Mike Becker <universe@uap-core.de>
parents:
92
diff
changeset
|
14 | private final List<String> make = new LinkedList<>(); |
| 41 | 15 | |
|
123
d89b75fdf0aa
add target data for disabled features - resolves #476
Mike Becker <universe@uap-core.de>
parents:
113
diff
changeset
|
16 | public TargetData() { |
|
d89b75fdf0aa
add target data for disabled features - resolves #476
Mike Becker <universe@uap-core.de>
parents:
113
diff
changeset
|
17 | } |
|
d89b75fdf0aa
add target data for disabled features - resolves #476
Mike Becker <universe@uap-core.de>
parents:
113
diff
changeset
|
18 | |
|
113
24f32dbd88cd
minimize application code
Mike Becker <universe@uap-core.de>
parents:
92
diff
changeset
|
19 | public TargetData(Element element) { |
|
123
d89b75fdf0aa
add target data for disabled features - resolves #476
Mike Becker <universe@uap-core.de>
parents:
113
diff
changeset
|
20 | readFrom(element); |
|
d89b75fdf0aa
add target data for disabled features - resolves #476
Mike Becker <universe@uap-core.de>
parents:
113
diff
changeset
|
21 | } |
|
d89b75fdf0aa
add target data for disabled features - resolves #476
Mike Becker <universe@uap-core.de>
parents:
113
diff
changeset
|
22 | |
|
d89b75fdf0aa
add target data for disabled features - resolves #476
Mike Becker <universe@uap-core.de>
parents:
113
diff
changeset
|
23 | public void readFrom(Element element) { |
|
113
24f32dbd88cd
minimize application code
Mike Becker <universe@uap-core.de>
parents:
92
diff
changeset
|
24 | Util.getChildElements(element).forEach(elm -> { |
|
24f32dbd88cd
minimize application code
Mike Becker <universe@uap-core.de>
parents:
92
diff
changeset
|
25 | switch (elm.getNodeName()) { |
|
24f32dbd88cd
minimize application code
Mike Becker <universe@uap-core.de>
parents:
92
diff
changeset
|
26 | case "define" -> defines.add(new Define( |
|
24f32dbd88cd
minimize application code
Mike Becker <universe@uap-core.de>
parents:
92
diff
changeset
|
27 | elm.getAttribute("name"), |
|
24f32dbd88cd
minimize application code
Mike Becker <universe@uap-core.de>
parents:
92
diff
changeset
|
28 | elm.getAttribute("value") |
|
24f32dbd88cd
minimize application code
Mike Becker <universe@uap-core.de>
parents:
92
diff
changeset
|
29 | )); |
|
24f32dbd88cd
minimize application code
Mike Becker <universe@uap-core.de>
parents:
92
diff
changeset
|
30 | case "dependencies" -> Arrays.stream(Util.getContent(elm).split(",")) |
|
24f32dbd88cd
minimize application code
Mike Becker <universe@uap-core.de>
parents:
92
diff
changeset
|
31 | .map(String::trim) |
|
24f32dbd88cd
minimize application code
Mike Becker <universe@uap-core.de>
parents:
92
diff
changeset
|
32 | .filter(not(String::isBlank)) |
|
24f32dbd88cd
minimize application code
Mike Becker <universe@uap-core.de>
parents:
92
diff
changeset
|
33 | .map(Util::shId) |
|
24f32dbd88cd
minimize application code
Mike Becker <universe@uap-core.de>
parents:
92
diff
changeset
|
34 | .forEach(dependencies::add); |
|
24f32dbd88cd
minimize application code
Mike Becker <universe@uap-core.de>
parents:
92
diff
changeset
|
35 | case "make" -> make.add(Util.getContent(elm)); |
|
0
38775db5fdf5
add existing source
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
36 | } |
|
113
24f32dbd88cd
minimize application code
Mike Becker <universe@uap-core.de>
parents:
92
diff
changeset
|
37 | }); |
|
0
38775db5fdf5
add existing source
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
38 | } |
| 41 | 39 | |
|
0
38775db5fdf5
add existing source
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
40 | public List<Define> getDefines() { |
|
38775db5fdf5
add existing source
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
41 | return defines; |
|
38775db5fdf5
add existing source
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
42 | } |
|
38775db5fdf5
add existing source
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
43 | |
|
38775db5fdf5
add existing source
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
44 | public List<String> getDependencies() { |
|
38775db5fdf5
add existing source
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
45 | return dependencies; |
|
38775db5fdf5
add existing source
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
46 | } |
|
38775db5fdf5
add existing source
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
47 | |
|
38775db5fdf5
add existing source
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
48 | public String getMake() { |
|
113
24f32dbd88cd
minimize application code
Mike Becker <universe@uap-core.de>
parents:
92
diff
changeset
|
49 | return String.join("\n", make); |
|
0
38775db5fdf5
add existing source
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
50 | } |
| 41 | 51 | |
|
113
24f32dbd88cd
minimize application code
Mike Becker <universe@uap-core.de>
parents:
92
diff
changeset
|
52 | public boolean hasMake() { |
|
24f32dbd88cd
minimize application code
Mike Becker <universe@uap-core.de>
parents:
92
diff
changeset
|
53 | return !make.isEmpty(); |
|
0
38775db5fdf5
add existing source
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
54 | } |
|
38775db5fdf5
add existing source
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
55 | } |