Skip to content

Commit c72ac88

Browse files
committed
Add support for signing binaries
Signed-off-by: Jade Turner <[email protected]>
1 parent c50846d commit c72ac88

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

src/main/java/edu/wpi/first/nativeutils/WPINativeUtils.java

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
import org.gradle.api.Plugin;
44
import org.gradle.api.Project;
5+
import org.gradle.nativeplatform.tasks.AbstractLinkTask;
6+
import org.gradle.nativeplatform.tasks.LinkExecutable;
57

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

1517
project.getPluginManager().apply(RpathRules.class);
16-
}
18+
19+
if (project.hasProperty("developerID")) {
20+
project.getTasks().withType(AbstractLinkTask.class).forEach((task) -> {
21+
// Don't sign any executables because codesign complains
22+
// about relative rpath.
23+
if (!(task instanceof LinkExecutable)) {
24+
// Get path to binary.
25+
String path = task.getLinkedFile().getAsFile().get().getAbsolutePath();
26+
ProcessBuilder builder = new ProcessBuilder();
27+
var codesigncommand = String.format("codesign --force --strict --timestamp --options=runtime "
28+
+ "--version -s %s %s", project.findProperty("developerID"), path);
29+
builder.command("sh", "-c", codesigncommand);
30+
builder.directory(project.getRootDir());
31+
}
32+
});
33+
}
34+
}
1735
}

0 commit comments

Comments
 (0)