Skip to content

Commit d767e85

Browse files
committed
Support OpenCV binaries
They have rpath differences, as well as needing the year
1 parent 1bf4ee0 commit d767e85

File tree

3 files changed

+30
-10
lines changed

3 files changed

+30
-10
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ plugins {
77
}
88

99
group 'edu.wpi.first'
10-
version '1.2.0'
10+
version '1.3.0'
1111

1212
if (project.hasProperty('publishVersion')) {
1313
version = project.publishVersion

src/main/java/edu/wpi/first/tools/FixupNativeResources.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,8 +146,14 @@ public void execute(CopySpec copySpec) {
146146

147147
// Fixup any dependencies
148148
for (String fixupFile : filesToFixup) {
149+
String outputName = fixupFile;
150+
// Handle the special case of opencv libraries already containing rpath
151+
if (outputName.startsWith("@rpath/")) {
152+
outputName = outputName.substring("@rpath/".length());
153+
}
154+
String outputNameFinal = outputName;
149155
project.exec((ex) -> {
150-
ex.commandLine("install_name_tool", "-change", fixupFile, "@loader_path/" + fixupFile,
156+
ex.commandLine("install_name_tool", "-change", fixupFile, "@loader_path/" + outputNameFinal,
151157
file.toString());
152158
});
153159
}

src/main/java/edu/wpi/first/tools/NativeConfigurator.java

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import org.gradle.api.artifacts.Dependency;
44
import org.gradle.api.artifacts.dsl.DependencyHandler;
55

6-
76
public class NativeConfigurator {
87
private final PlatformMapper platformMapper;
98
private String defaultJavaFxVersion = "17.0.2";
@@ -15,6 +14,15 @@ public NativeConfigurator(PlatformMapper mapper, DependencyHandler handler) {
1514
this.handler = handler;
1615
}
1716

17+
public Dependency wpilibOpenCvJava(String frcYear, String version) {
18+
return handler.create("edu.wpi.first.thirdparty." + frcYear + ".opencv:opencv-java:" + version);
19+
}
20+
21+
public Dependency wpilibOpenCv(String frcYear, String version) {
22+
return handler.create("edu.wpi.first.thirdparty." + frcYear + ".opencv:opencv-cpp:" + version + ":"
23+
+ platformMapper.getWpilibClassifier() + "@zip");
24+
}
25+
1826
public Dependency wpilibJava(String name) {
1927
return wpilibJava(name, wpilibVersion);
2028
}
@@ -24,15 +32,17 @@ public Dependency wpilibJava(String name, String version) {
2432
}
2533

2634
public Dependency wpilib(String name, String version) {
27-
return handler.create("edu.wpi.first." + name + ":" + name + "-cpp:" + version + ":" + platformMapper.getWpilibClassifier() + "@zip");
35+
return handler.create("edu.wpi.first." + name + ":" + name + "-cpp:" + version + ":"
36+
+ platformMapper.getWpilibClassifier() + "@zip");
2837
}
2938

3039
public Dependency wpilib(String name) {
3140
return wpilib(name, this.wpilibVersion);
3241
}
3342

3443
public Dependency cscore(String version) {
35-
return handler.create("edu.wpi.first.cscore:cscore-jnicvstatic:" + version + ":" + platformMapper.getWpilibClassifier() + "@zip");
44+
return handler.create("edu.wpi.first.cscore:cscore-jnicvstatic:" + version + ":"
45+
+ platformMapper.getWpilibClassifier() + "@zip");
3646
}
3747

3848
public Dependency cscore() {
@@ -41,7 +51,8 @@ public Dependency cscore() {
4151

4252
public Dependency javafx(String name, String version) {
4353
String groupName = "org.openjfx";
44-
return handler.create(groupName + ":javafx-" + name + ":" + version + ":" + platformMapper.getJavaFxClassifier());
54+
return handler
55+
.create(groupName + ":javafx-" + name + ":" + version + ":" + platformMapper.getJavaFxClassifier());
4556
}
4657

4758
public Dependency javafx(String name) {
@@ -56,9 +67,12 @@ public void setWpilibVersion(String version) {
5667
this.wpilibVersion = version;
5768
}
5869

59-
// public static Dependency nativeDependency(DependencyHandler handler, String group, String name, String version, Function<NativePlatforms, String> classiferFunction) {
60-
// NativePlatforms currentPlatform = PlatformMapper.getCurrentPlatform();
61-
// return handler.add(currentPlatform.getPlatformName(),
62-
// group + ":" + name + ":" + version + ":" + classiferFunction.apply(currentPlatform));
70+
// public static Dependency nativeDependency(DependencyHandler handler, String
71+
// group, String name, String version, Function<NativePlatforms, String>
72+
// classiferFunction) {
73+
// NativePlatforms currentPlatform = PlatformMapper.getCurrentPlatform();
74+
// return handler.add(currentPlatform.getPlatformName(),
75+
// group + ":" + name + ":" + version + ":" +
76+
// classiferFunction.apply(currentPlatform));
6377
// }
6478
}

0 commit comments

Comments
 (0)