Skip to content

Commit 6c9885f

Browse files
committed
option magic
Signed-off-by: Jade Turner <[email protected]>
1 parent 06da326 commit 6c9885f

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

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

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,22 @@
22

33
import org.gradle.api.Plugin;
44
import org.gradle.api.Project;
5+
import org.gradle.api.tasks.options.Option;
56
import org.gradle.nativeplatform.tasks.AbstractLinkTask;
67
import org.gradle.nativeplatform.tasks.LinkExecutable;
78

89
public class WPINativeUtils implements Plugin<Project> {
10+
private String developerID = null;
11+
12+
@Option(option = "sign", description = "Sign with developer ID (MacOS only)")
13+
public void sign(String developerID) {
14+
if (!System.getProperty("os.name").startsWith("Mac")) {
15+
throw new RuntimeException("Can't sign binaries on non mac platforms");
16+
}
17+
18+
this.developerID = developerID;
19+
}
20+
921
@Override
1022
public void apply(Project project) {
1123
project.getPluginManager().apply(NativeUtils.class);
@@ -17,7 +29,7 @@ public void apply(Project project) {
1729
project.getPluginManager().apply(RpathRules.class);
1830

1931
if (System.getProperty("os.name").startsWith("Mac")) {
20-
if (project.hasProperty("developerID")) {
32+
if (developerID != null) {
2133
project.getTasks().withType(AbstractLinkTask.class).forEach((task) -> {
2234
// Don't sign any executables because codesign complains
2335
// about relative rpath.
@@ -26,7 +38,7 @@ public void apply(Project project) {
2638
String path = task.getLinkedFile().getAsFile().get().getAbsolutePath();
2739
ProcessBuilder builder = new ProcessBuilder();
2840
var codesigncommand = String.format("codesign --force --strict --timestamp --options=runtime "
29-
+ "--version -s %s %s", project.findProperty("developerID"), path);
41+
+ "--version -s %s %s", developerID, path);
3042
builder.command("sh", "-c", codesigncommand);
3143
builder.directory(project.getRootDir());
3244
}

0 commit comments

Comments
 (0)