Skip to content

Commit

Permalink
Started JNI cursed bs crashes for now
Browse files Browse the repository at this point in the history
Signed-off-by: Jade Turner <[email protected]>
  • Loading branch information
spacey-sooty committed Jan 19, 2025
1 parent 0b10ae0 commit 8ebacc3
Show file tree
Hide file tree
Showing 16 changed files with 258 additions and 101 deletions.
85 changes: 85 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,17 +1,55 @@
plugins {
id "java"
id "cpp"
id "edu.wpi.first.GradleRIO" version "2025.2.1"
id 'edu.wpi.first.GradleJni' version '1.1.0'
id "com.peterabeles.gversion" version "1.10"
id "com.diffplug.spotless" version "6.12.0"
}

import edu.wpi.first.gradlerio.wpi.java.*;
import org.gradle.internal.os.OperatingSystem;

def configureExecutableNatives(JavaForkOptions t, Provider<ExtractNativeJavaArtifacts> extract) {
Task tt = (Task) t
tt.dependsOn extract
Provider<DirectoryProperty> destDir = project.getProviders().provider({
return extract.get().getDestinationDirectory()
})
tt.getInputs().dir(destDir)
tt.doFirst(new TestTaskDoFirstAction(t, destDir))
}

def configureJavaExecTask(JavaExec t, boolean debug) {
def extract;

if (debug) {
extract = project.getTasks().register("extractDebugNative2", ExtractNativeJavaArtifacts.class)
} else {
extract = project.getTasks().register("extractReleaseNative2", ExtractNativeJavaArtifacts.class)
}

configureExecutableNatives(t, extract)
if (OperatingSystem.current().isMacOsX()) {
t.jvmArgs("-XstartOnFirstThread")
}
}

java {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}

def ROBOT_MAIN_CLASS = "org.curtinfrc.frc2025.Main"

nativeUtils {
exportsConfigs {
// Only export explicit symbols from driver library
TrajgenJNI {
}
}
}

// Define my targets (RoboRIO) and artifacts (deployable files)
// This is added by GradleRIO's backing project DeployUtils.
deploy {
Expand Down Expand Up @@ -54,6 +92,46 @@ deploy {
}
}

task refreshCompileCommands(type: Exec) {
workingDir = rootDir
def args = [
"rm",
"-rf",
"$buildDir/TargetedCompileCommands"
]
commandLine args
}

model {
components {
TrajgenJNI(JniNativeLibrarySpec) {
targetPlatform wpi.platforms.desktop
enableCheckTask = true
javaCompileTasks << compileJava
jniCrossCompileOptions << JniCrossCompileOptions(wpi.platforms.desktop)

sources {
cpp {
source {
srcDirs 'src/main/native/cpp'
include '**/*.cpp'
}

exportedHeaders {
srcDir 'src/main/native/include'
}
}
}

binaries.all {
lib project: ':trajoptlib', library: 'TrajoptLib', linkage: 'static'
}

nativeUtils.useRequiredLibrary(it, "wpilib_shared")
}
}
}

def deployArtifact = deploy.targets.roborio.artifacts.frcJava

// Set to true to use debug for JNI.
Expand Down Expand Up @@ -88,6 +166,13 @@ task(regenerateTrajectories, dependsOn: "classes", type: Exec) {

project.compileJava.finalizedBy(regenerateTrajectories)

task(generateTrajectories, dependsOn: "classes", type: JavaExec) {
mainClass = "org.curtinfrc.frc2025.auto.TrajectoryGenerator"
classpath = sourceSets.main.runtimeClasspath
jvmArgs += "-Djava.library.path=${buildDir}/libs/trajgenJNI/shared/release"
}
configureJavaExecTask(generateTrajectories, project.frc.getDebugOrDefault(false))

// Defining my dependencies. In this case, WPILib (+ friends), and vendor libraries.
// Also defines JUnit 4.
dependencies {
Expand Down
10 changes: 5 additions & 5 deletions src/main/java/org/curtinfrc/frc2025/BuildConstants.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@ public final class BuildConstants {
public static final String MAVEN_GROUP = "";
public static final String MAVEN_NAME = "2025-Reefscape";
public static final String VERSION = "unspecified";
public static final int GIT_REVISION = 33;
public static final String GIT_SHA = "c02ca801e6b1ef3a366b050ea65a8162bd71a85e";
public static final String GIT_DATE = "2025-01-19 21:06:05 AWST";
public static final int GIT_REVISION = 34;
public static final String GIT_SHA = "0b10ae048494bfc84b04e14e52241ce2efa3584b";
public static final String GIT_DATE = "2025-01-19 21:06:40 AWST";
public static final String GIT_BRANCH = "HEAD";
public static final String BUILD_DATE = "2025-01-19 21:06:18 AWST";
public static final long BUILD_UNIX_TIME = 1737291978786L;
public static final String BUILD_DATE = "2025-01-19 21:07:01 AWST";
public static final long BUILD_UNIX_TIME = 1737292021607L;
public static final int DIRTY = 1;

private BuildConstants() {}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package org.curtinfrc.frc2025.auto;

public class TrajectoryGenerator {
public static void main(String... args) {
TrajgenJNI.helloWorld();
}
}
17 changes: 17 additions & 0 deletions src/main/java/org/curtinfrc/frc2025/auto/TrajgenJNI.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package org.curtinfrc.frc2025.auto;

import edu.wpi.first.util.RuntimeLoader;
import java.io.IOException;

public class TrajgenJNI {
static {
try {
RuntimeLoader.loadLibrary("TrajgenJNI");
} catch (IOException e) {
e.printStackTrace();
System.exit(1);
}
}

public static native void helloWorld();
}
12 changes: 12 additions & 0 deletions src/main/native/cpp/TrajectoryGeneration.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#include "TrajectoryGeneration.h"
#include "trajopt/SwerveTrajectoryGenerator.hpp"
#include "trajopt/path/Path.hpp"
#include <vector>

trajopt::SwerveSolution trajgen::CreateInitialGuess(std::vector<trajopt::Waypoint> trajectory) {
return trajopt::SwerveSolution{};
}

trajopt::SwerveTrajectory trajgen::Generate(InputTrajectory trajectory) {
return trajopt::SwerveTrajectory{};
}
20 changes: 20 additions & 0 deletions src/main/native/cpp/TrajgenJNI.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#include <jni.h>
#include <wpi/array.h>
#include <wpi/jni_util.h>

#include "fmt/base.h"
#include "jni_md.h"

extern "C" {
/*
* Class: frc_robot_jni_ShooterTrajoptJNI
* Method: calculateTrajectory
* Signature: ([D????)V
*/
JNIEXPORT void JNICALL
Java_org_curtinfrc_frc2025_auto_TrajgenJNI_helloWorld
(JNIEnv* env, jclass)
{
fmt::println("Hello world!");
}
} // extern "C"
16 changes: 16 additions & 0 deletions src/main/native/include/TrajectoryGeneration.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#pragma once

#include "trajopt/SwerveTrajectoryGenerator.hpp"
#include "trajopt/constraint/Constraint.hpp"
#include "trajopt/path/Path.hpp"
#include <vector>

namespace trajgen {
struct InputTrajectory {
std::vector<trajopt::Waypoint> waypoints;
std::vector<trajopt::Constraint> constraints;
};

trajopt::SwerveSolution CreateInitialGuess(std::vector<trajopt::Waypoint> waypoints);
trajopt::SwerveTrajectory Generate(InputTrajectory trajectory);
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,25 +18,25 @@ c++
-I
/home/jadey/Documents/frc/2025-Reefscape/trajoptlib/src/main/include
-I
/home/jadey/.gradle/caches/8.11/transforms/188bdfacfd1575729d62c3ffdc004502/transformed/wpilibc-cpp-2025.2.1-headers
/home/jadey/.gradle/caches/8.11/transforms/53a9011fd7efcd6a2e8bfd3f21c8a678/transformed/wpilibc-cpp-2025.2.1-headers
-I
/home/jadey/.gradle/caches/8.11/transforms/a215936a413cf0cf857cc8c6f3a617ef/transformed/ntcore-cpp-2025.2.1-headers
/home/jadey/.gradle/caches/8.11/transforms/e007ac1ce43ac7002240e392f502656a/transformed/ntcore-cpp-2025.2.1-headers
-I
/home/jadey/.gradle/caches/8.11/transforms/f6daf74b4fee88d5b154906067a13821/transformed/hal-cpp-2025.2.1-headers
/home/jadey/.gradle/caches/8.11/transforms/d10353a5f411045835a3e342820132b1/transformed/hal-cpp-2025.2.1-headers
-I
/home/jadey/.gradle/caches/8.11/transforms/4632b34f694f2710e1b65141022e0a43/transformed/wpimath-cpp-2025.2.1-headers
/home/jadey/.gradle/caches/8.11/transforms/02ec676971f66d9182bc7f1e64a1c757/transformed/wpimath-cpp-2025.2.1-headers
-I
/home/jadey/.gradle/caches/8.11/transforms/0899f3039bfd10b32536e440a7a62e3d/transformed/wpinet-cpp-2025.2.1-headers
/home/jadey/.gradle/caches/8.11/transforms/92f79973f43a017fed3b925394e5bc09/transformed/wpinet-cpp-2025.2.1-headers
-I
/home/jadey/.gradle/caches/8.11/transforms/0d55a6ec567e432c3ea92a8c973ef938/transformed/wpiutil-cpp-2025.2.1-headers
/home/jadey/.gradle/caches/8.11/transforms/dabccdc907ac00487f9c14aa5d409e2b/transformed/wpiutil-cpp-2025.2.1-headers
-I
/home/jadey/.gradle/caches/8.11/transforms/8c3de92822ae800f0f6d2da1e7506e4f/transformed/cameraserver-cpp-2025.2.1-headers
/home/jadey/.gradle/caches/8.11/transforms/74055d7f1dbf261e0cf9e508957a2fec/transformed/cameraserver-cpp-2025.2.1-headers
-I
/home/jadey/.gradle/caches/8.11/transforms/e7d5b15118f7ea4e1c47eefceb3f48c6/transformed/cscore-cpp-2025.2.1-headers
/home/jadey/.gradle/caches/8.11/transforms/80b6ed662b5a1a402c92a6afe70deacd/transformed/cscore-cpp-2025.2.1-headers
-I
/home/jadey/.gradle/caches/8.11/transforms/fd1f89d569b46d2e4cba3ec25cda0915/transformed/apriltag-cpp-2025.2.1-headers
/home/jadey/.gradle/caches/8.11/transforms/64c3738b8c1d55bb1b29309d040b5f73/transformed/apriltag-cpp-2025.2.1-headers
-I
/home/jadey/.gradle/caches/8.11/transforms/ddfab50b6f089479a32d90c64d0ffef8/transformed/opencv-cpp-4.10.0-3-headers
/home/jadey/.gradle/caches/8.11/transforms/da1da30eb945eb32e5a98a0cd6bac2bd/transformed/opencv-cpp-4.10.0-3-headers
-isystem
/usr/include/c++/14
-isystem
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
See file:///home/jadey/Documents/frc/2025-Reefscape/trajoptlib/build/tmp/compileTrajoptLibDebugSharedLibraryTrajoptLibCpp/output.txt for all output for compileTrajoptLibDebugSharedLibraryTrajoptLibCpp.
compiling DifferentialTrajectoryGenerator.cpp successful.

compiling Cancellation.cpp successful.

compiling SwerveTrajectoryGenerator.cpp successful.

compiling DifferentialTrajectoryGenerator.cpp successful.

Finished compileTrajoptLibDebugSharedLibraryTrajoptLibCpp, see full log file:///home/jadey/Documents/frc/2025-Reefscape/trajoptlib/build/tmp/compileTrajoptLibDebugSharedLibraryTrajoptLibCpp/output.txt.
Original file line number Diff line number Diff line change
Expand Up @@ -17,25 +17,25 @@ c++
-I
/home/jadey/Documents/frc/2025-Reefscape/trajoptlib/src/main/include
-I
/home/jadey/.gradle/caches/8.11/transforms/188bdfacfd1575729d62c3ffdc004502/transformed/wpilibc-cpp-2025.2.1-headers
/home/jadey/.gradle/caches/8.11/transforms/53a9011fd7efcd6a2e8bfd3f21c8a678/transformed/wpilibc-cpp-2025.2.1-headers
-I
/home/jadey/.gradle/caches/8.11/transforms/a215936a413cf0cf857cc8c6f3a617ef/transformed/ntcore-cpp-2025.2.1-headers
/home/jadey/.gradle/caches/8.11/transforms/e007ac1ce43ac7002240e392f502656a/transformed/ntcore-cpp-2025.2.1-headers
-I
/home/jadey/.gradle/caches/8.11/transforms/f6daf74b4fee88d5b154906067a13821/transformed/hal-cpp-2025.2.1-headers
/home/jadey/.gradle/caches/8.11/transforms/d10353a5f411045835a3e342820132b1/transformed/hal-cpp-2025.2.1-headers
-I
/home/jadey/.gradle/caches/8.11/transforms/4632b34f694f2710e1b65141022e0a43/transformed/wpimath-cpp-2025.2.1-headers
/home/jadey/.gradle/caches/8.11/transforms/02ec676971f66d9182bc7f1e64a1c757/transformed/wpimath-cpp-2025.2.1-headers
-I
/home/jadey/.gradle/caches/8.11/transforms/0899f3039bfd10b32536e440a7a62e3d/transformed/wpinet-cpp-2025.2.1-headers
/home/jadey/.gradle/caches/8.11/transforms/92f79973f43a017fed3b925394e5bc09/transformed/wpinet-cpp-2025.2.1-headers
-I
/home/jadey/.gradle/caches/8.11/transforms/0d55a6ec567e432c3ea92a8c973ef938/transformed/wpiutil-cpp-2025.2.1-headers
/home/jadey/.gradle/caches/8.11/transforms/dabccdc907ac00487f9c14aa5d409e2b/transformed/wpiutil-cpp-2025.2.1-headers
-I
/home/jadey/.gradle/caches/8.11/transforms/8c3de92822ae800f0f6d2da1e7506e4f/transformed/cameraserver-cpp-2025.2.1-headers
/home/jadey/.gradle/caches/8.11/transforms/74055d7f1dbf261e0cf9e508957a2fec/transformed/cameraserver-cpp-2025.2.1-headers
-I
/home/jadey/.gradle/caches/8.11/transforms/e7d5b15118f7ea4e1c47eefceb3f48c6/transformed/cscore-cpp-2025.2.1-headers
/home/jadey/.gradle/caches/8.11/transforms/80b6ed662b5a1a402c92a6afe70deacd/transformed/cscore-cpp-2025.2.1-headers
-I
/home/jadey/.gradle/caches/8.11/transforms/fd1f89d569b46d2e4cba3ec25cda0915/transformed/apriltag-cpp-2025.2.1-headers
/home/jadey/.gradle/caches/8.11/transforms/64c3738b8c1d55bb1b29309d040b5f73/transformed/apriltag-cpp-2025.2.1-headers
-I
/home/jadey/.gradle/caches/8.11/transforms/ddfab50b6f089479a32d90c64d0ffef8/transformed/opencv-cpp-4.10.0-3-headers
/home/jadey/.gradle/caches/8.11/transforms/da1da30eb945eb32e5a98a0cd6bac2bd/transformed/opencv-cpp-4.10.0-3-headers
-isystem
/usr/include/c++/14
-isystem
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
See file:///home/jadey/Documents/frc/2025-Reefscape/trajoptlib/build/tmp/compileTrajoptLibDebugStaticLibraryTrajoptLibCpp/output.txt for all output for compileTrajoptLibDebugStaticLibraryTrajoptLibCpp.
compiling Cancellation.cpp successful.

compiling DifferentialTrajectoryGenerator.cpp successful.

compiling SwerveTrajectoryGenerator.cpp successful.

compiling DifferentialTrajectoryGenerator.cpp successful.

Finished compileTrajoptLibDebugStaticLibraryTrajoptLibCpp, see full log file:///home/jadey/Documents/frc/2025-Reefscape/trajoptlib/build/tmp/compileTrajoptLibDebugStaticLibraryTrajoptLibCpp/output.txt.
Original file line number Diff line number Diff line change
Expand Up @@ -17,25 +17,25 @@ c++
-I
/home/jadey/Documents/frc/2025-Reefscape/trajoptlib/src/main/include
-I
/home/jadey/.gradle/caches/8.11/transforms/188bdfacfd1575729d62c3ffdc004502/transformed/wpilibc-cpp-2025.2.1-headers
/home/jadey/.gradle/caches/8.11/transforms/53a9011fd7efcd6a2e8bfd3f21c8a678/transformed/wpilibc-cpp-2025.2.1-headers
-I
/home/jadey/.gradle/caches/8.11/transforms/a215936a413cf0cf857cc8c6f3a617ef/transformed/ntcore-cpp-2025.2.1-headers
/home/jadey/.gradle/caches/8.11/transforms/e007ac1ce43ac7002240e392f502656a/transformed/ntcore-cpp-2025.2.1-headers
-I
/home/jadey/.gradle/caches/8.11/transforms/f6daf74b4fee88d5b154906067a13821/transformed/hal-cpp-2025.2.1-headers
/home/jadey/.gradle/caches/8.11/transforms/d10353a5f411045835a3e342820132b1/transformed/hal-cpp-2025.2.1-headers
-I
/home/jadey/.gradle/caches/8.11/transforms/4632b34f694f2710e1b65141022e0a43/transformed/wpimath-cpp-2025.2.1-headers
/home/jadey/.gradle/caches/8.11/transforms/02ec676971f66d9182bc7f1e64a1c757/transformed/wpimath-cpp-2025.2.1-headers
-I
/home/jadey/.gradle/caches/8.11/transforms/0899f3039bfd10b32536e440a7a62e3d/transformed/wpinet-cpp-2025.2.1-headers
/home/jadey/.gradle/caches/8.11/transforms/92f79973f43a017fed3b925394e5bc09/transformed/wpinet-cpp-2025.2.1-headers
-I
/home/jadey/.gradle/caches/8.11/transforms/0d55a6ec567e432c3ea92a8c973ef938/transformed/wpiutil-cpp-2025.2.1-headers
/home/jadey/.gradle/caches/8.11/transforms/dabccdc907ac00487f9c14aa5d409e2b/transformed/wpiutil-cpp-2025.2.1-headers
-I
/home/jadey/.gradle/caches/8.11/transforms/8c3de92822ae800f0f6d2da1e7506e4f/transformed/cameraserver-cpp-2025.2.1-headers
/home/jadey/.gradle/caches/8.11/transforms/74055d7f1dbf261e0cf9e508957a2fec/transformed/cameraserver-cpp-2025.2.1-headers
-I
/home/jadey/.gradle/caches/8.11/transforms/e7d5b15118f7ea4e1c47eefceb3f48c6/transformed/cscore-cpp-2025.2.1-headers
/home/jadey/.gradle/caches/8.11/transforms/80b6ed662b5a1a402c92a6afe70deacd/transformed/cscore-cpp-2025.2.1-headers
-I
/home/jadey/.gradle/caches/8.11/transforms/fd1f89d569b46d2e4cba3ec25cda0915/transformed/apriltag-cpp-2025.2.1-headers
/home/jadey/.gradle/caches/8.11/transforms/64c3738b8c1d55bb1b29309d040b5f73/transformed/apriltag-cpp-2025.2.1-headers
-I
/home/jadey/.gradle/caches/8.11/transforms/ddfab50b6f089479a32d90c64d0ffef8/transformed/opencv-cpp-4.10.0-3-headers
/home/jadey/.gradle/caches/8.11/transforms/da1da30eb945eb32e5a98a0cd6bac2bd/transformed/opencv-cpp-4.10.0-3-headers
-isystem
/usr/include/c++/14
-isystem
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,25 +16,25 @@ c++
-I
/home/jadey/Documents/frc/2025-Reefscape/trajoptlib/src/main/include
-I
/home/jadey/.gradle/caches/8.11/transforms/188bdfacfd1575729d62c3ffdc004502/transformed/wpilibc-cpp-2025.2.1-headers
/home/jadey/.gradle/caches/8.11/transforms/53a9011fd7efcd6a2e8bfd3f21c8a678/transformed/wpilibc-cpp-2025.2.1-headers
-I
/home/jadey/.gradle/caches/8.11/transforms/a215936a413cf0cf857cc8c6f3a617ef/transformed/ntcore-cpp-2025.2.1-headers
/home/jadey/.gradle/caches/8.11/transforms/e007ac1ce43ac7002240e392f502656a/transformed/ntcore-cpp-2025.2.1-headers
-I
/home/jadey/.gradle/caches/8.11/transforms/f6daf74b4fee88d5b154906067a13821/transformed/hal-cpp-2025.2.1-headers
/home/jadey/.gradle/caches/8.11/transforms/d10353a5f411045835a3e342820132b1/transformed/hal-cpp-2025.2.1-headers
-I
/home/jadey/.gradle/caches/8.11/transforms/4632b34f694f2710e1b65141022e0a43/transformed/wpimath-cpp-2025.2.1-headers
/home/jadey/.gradle/caches/8.11/transforms/02ec676971f66d9182bc7f1e64a1c757/transformed/wpimath-cpp-2025.2.1-headers
-I
/home/jadey/.gradle/caches/8.11/transforms/0899f3039bfd10b32536e440a7a62e3d/transformed/wpinet-cpp-2025.2.1-headers
/home/jadey/.gradle/caches/8.11/transforms/92f79973f43a017fed3b925394e5bc09/transformed/wpinet-cpp-2025.2.1-headers
-I
/home/jadey/.gradle/caches/8.11/transforms/0d55a6ec567e432c3ea92a8c973ef938/transformed/wpiutil-cpp-2025.2.1-headers
/home/jadey/.gradle/caches/8.11/transforms/dabccdc907ac00487f9c14aa5d409e2b/transformed/wpiutil-cpp-2025.2.1-headers
-I
/home/jadey/.gradle/caches/8.11/transforms/8c3de92822ae800f0f6d2da1e7506e4f/transformed/cameraserver-cpp-2025.2.1-headers
/home/jadey/.gradle/caches/8.11/transforms/74055d7f1dbf261e0cf9e508957a2fec/transformed/cameraserver-cpp-2025.2.1-headers
-I
/home/jadey/.gradle/caches/8.11/transforms/e7d5b15118f7ea4e1c47eefceb3f48c6/transformed/cscore-cpp-2025.2.1-headers
/home/jadey/.gradle/caches/8.11/transforms/80b6ed662b5a1a402c92a6afe70deacd/transformed/cscore-cpp-2025.2.1-headers
-I
/home/jadey/.gradle/caches/8.11/transforms/fd1f89d569b46d2e4cba3ec25cda0915/transformed/apriltag-cpp-2025.2.1-headers
/home/jadey/.gradle/caches/8.11/transforms/64c3738b8c1d55bb1b29309d040b5f73/transformed/apriltag-cpp-2025.2.1-headers
-I
/home/jadey/.gradle/caches/8.11/transforms/ddfab50b6f089479a32d90c64d0ffef8/transformed/opencv-cpp-4.10.0-3-headers
/home/jadey/.gradle/caches/8.11/transforms/da1da30eb945eb32e5a98a0cd6bac2bd/transformed/opencv-cpp-4.10.0-3-headers
-isystem
/usr/include/c++/14
-isystem
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
See file:///home/jadey/Documents/frc/2025-Reefscape/trajoptlib/build/tmp/compileTrajoptLibReleaseStaticLibraryTrajoptLibCpp/output.txt for all output for compileTrajoptLibReleaseStaticLibraryTrajoptLibCpp.
compiling Cancellation.cpp successful.

compiling DifferentialTrajectoryGenerator.cpp successful.

compiling SwerveTrajectoryGenerator.cpp successful.

compiling DifferentialTrajectoryGenerator.cpp successful.

Finished compileTrajoptLibReleaseStaticLibraryTrajoptLibCpp, see full log file:///home/jadey/Documents/frc/2025-Reefscape/trajoptlib/build/tmp/compileTrajoptLibReleaseStaticLibraryTrajoptLibCpp/output.txt.
Loading

0 comments on commit 8ebacc3

Please sign in to comment.