Use the tool plugin to include photon-targeting into photon-core (#2137)

## Description

This allows photon-targeting to be loaded using the same mechanism as
the rest of the WPILib libraries, fixing issues with libraries not being
able to find and load their dependent libraries.

## Meta

Merge checklist:
- [x] Pull Request title is [short, imperative
summary](https://cbea.ms/git-commit/) of proposed changes
- [x] The description documents the _what_ and _why_
- [x] If this PR changes behavior or adds a feature, user documentation
is updated
- [ ] If this PR touches photon-serde, all messages have been
regenerated and hashes have not changed unexpectedly
- [ ] If this PR touches configuration, this is backwards compatible
with settings back to v2025.3.2
- [ ] If this PR touches pipeline settings or anything related to data
exchange, the frontend typing is updated
- [ ] If this PR addresses a bug, a regression test for it is added
This commit is contained in:
Gold856
2025-10-20 10:45:54 -04:00
committed by GitHub
parent b531fe6b81
commit 4f549ba579
21 changed files with 100 additions and 280 deletions

View File

@@ -24,8 +24,8 @@
package org.photonvision.timesync;
import edu.wpi.first.util.RuntimeLoader;
import java.io.IOException;
import org.photonvision.jni.PhotonTargetingJniLoader;
import org.photonvision.jni.TimeSyncServer;
/** Helper to hold a single TimeSyncServer instance with some default config */
@@ -35,12 +35,11 @@ public class TimeSyncSingleton {
public static boolean load() {
if (INSTANCE == null) {
try {
if (!PhotonTargetingJniLoader.load()) {
return false;
}
} catch (UnsatisfiedLinkError | IOException e) {
RuntimeLoader.loadLibrary("photontargetingJNI");
} catch (IOException e) {
// Don't want to return early. We want to create the TimeSyncServer so the program crashes
// because we need it in order to function.
e.printStackTrace();
return false;
}
INSTANCE = new TimeSyncServer(5810);