Skip to content

Commit

Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add support for signing binaries
Browse files Browse the repository at this point in the history
Signed-off-by: Jade Turner <[email protected]>
spacey-sooty committed Oct 2, 2024
1 parent c50846d commit c72ac88
Showing 1 changed file with 19 additions and 1 deletion.
20 changes: 19 additions & 1 deletion src/main/java/edu/wpi/first/nativeutils/WPINativeUtils.java
Original file line number Diff line number Diff line change
@@ -2,6 +2,8 @@

import org.gradle.api.Plugin;
import org.gradle.api.Project;
import org.gradle.nativeplatform.tasks.AbstractLinkTask;
import org.gradle.nativeplatform.tasks.LinkExecutable;

public class WPINativeUtils implements Plugin<Project> {
@Override
@@ -13,5 +15,21 @@ public void apply(Project project) {
nativeExt.addWpiExtension();

project.getPluginManager().apply(RpathRules.class);
}

if (project.hasProperty("developerID")) {
project.getTasks().withType(AbstractLinkTask.class).forEach((task) -> {
// Don't sign any executables because codesign complains
// about relative rpath.
if (!(task instanceof LinkExecutable)) {
// Get path to binary.
String path = task.getLinkedFile().getAsFile().get().getAbsolutePath();
ProcessBuilder builder = new ProcessBuilder();
var codesigncommand = String.format("codesign --force --strict --timestamp --options=runtime "
+ "--version -s %s %s", project.findProperty("developerID"), path);
builder.command("sh", "-c", codesigncommand);
builder.directory(project.getRootDir());
}
});
}
}
}

0 comments on commit c72ac88

Please sign in to comment.