Skip to content

Commit

Permalink
Limit arm javafx to older version (#31)
Browse files Browse the repository at this point in the history
  • Loading branch information
ThadHouse authored Nov 12, 2024
1 parent 50ad3ea commit c29dd12
Show file tree
Hide file tree
Showing 3 changed files with 73 additions and 40 deletions.
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ plugins {
}

group 'edu.wpi.first'
version '2.0.2'
version '2.1.0'

if (project.hasProperty('publishVersion')) {
version = project.publishVersion
Expand Down
4 changes: 3 additions & 1 deletion src/main/java/edu/wpi/first/tools/NativeConfigurator.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
public class NativeConfigurator {
private final PlatformMapper platformMapper;
private String defaultJavaFxVersion = "17.0.13";
private String defaultJavaFxVersionArm = "17.0.8";
private String wpilibVersion = "+";
private final DependencyHandler handler;

Expand Down Expand Up @@ -56,7 +57,8 @@ public Dependency javafx(String name, String version) {
}

public Dependency javafx(String name) {
return javafx(name, defaultJavaFxVersion);
String javafxVersion = platformMapper.isPlatformArm() ? defaultJavaFxVersionArm : defaultJavaFxVersion;
return javafx(name, javafxVersion);
}

public void setDefaultJavaFxVersion(String version) {
Expand Down
107 changes: 69 additions & 38 deletions src/main/java/edu/wpi/first/tools/PlatformMapper.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,18 +23,18 @@ public synchronized NativePlatforms getCurrentPlatform() {

if (override != null) {
System.out.println("Overwriting platform to " + override);
currentPlatform = NativePlatforms.forName((String)override);
currentPlatform = NativePlatforms.forName((String) override);
return currentPlatform;
}

String osName = System.getProperty("os.name").toLowerCase();
String os = "";

if(osName.contains("windows")) {
if (osName.contains("windows")) {
os = "win";
} else if(osName.contains("mac")) {
} else if (osName.contains("mac")) {
os = "mac";
} else if(osName.contains("linux")) {
} else if (osName.contains("linux")) {
os = "linux";
} else {
throw new UnsupportedOperationException("Unknown OS: " + osName);
Expand All @@ -43,63 +43,94 @@ public synchronized NativePlatforms getCurrentPlatform() {
String osArch = System.getProperty("os.arch");
String arch = "";

if(osArch.contains("x86_64") || osArch.contains("amd64")) {
if (osArch.contains("x86_64") || osArch.contains("amd64")) {
arch = "x64";
} else if(osArch.contains("x86")) {
} else if (osArch.contains("x86")) {
arch = "x32";
} else if(osArch.contains("arm64") || osArch.contains("aarch64")) {
} else if (osArch.contains("arm64") || osArch.contains("aarch64")) {
arch = "arm64";
} else if(osArch.contains("arm")) {
} else if (osArch.contains("arm")) {
arch = "arm32";
}else {
} else {
throw new UnsupportedOperationException(osArch);
}

currentPlatform = NativePlatforms.forName(os + arch);
return currentPlatform;
}

public boolean isPlatformArm() {
NativePlatforms platform = getCurrentPlatform();
return platform == NativePlatforms.LINUXARM64 || platform == NativePlatforms.LINUXARM32;
}

public String getWpilibClassifier() {
NativePlatforms platform = getCurrentPlatform();
switch(platform) {
case WIN32: return "windowsx86";
case WIN64: return "windowsx86-64";
case WINARM64: return "windowsarm64";
case MAC64: return "osxuniversal";
case MACARM64: return "osxuniversal";
case LINUX64: return "linuxx86-64";
case LINUXARM64: return "linuxarm64";
case LINUXARM32: return "linuxarm32";
case LINUXATHENA: return "linuxathena";
default: throw new IllegalArgumentException();
switch (platform) {
case WIN32:
return "windowsx86";
case WIN64:
return "windowsx86-64";
case WINARM64:
return "windowsarm64";
case MAC64:
return "osxuniversal";
case MACARM64:
return "osxuniversal";
case LINUX64:
return "linuxx86-64";
case LINUXARM64:
return "linuxarm64";
case LINUXARM32:
return "linuxarm32";
case LINUXATHENA:
return "linuxathena";
default:
throw new IllegalArgumentException();
}
}

public String getJavaCppClassifier() {
NativePlatforms platform = getCurrentPlatform();
switch(platform) {
case WIN32: return "windows-x86";
case WIN64: return "windows-x86_64";
case MAC64: return "macosx-x86_64";
case MACARM64: return "macosx-arm64";
case LINUX64: return "linux-x86_64";
case LINUXARM64: return "linux-arm64";
case LINUXARM32: return "linux-armhf";
default: throw new IllegalArgumentException();
switch (platform) {
case WIN32:
return "windows-x86";
case WIN64:
return "windows-x86_64";
case MAC64:
return "macosx-x86_64";
case MACARM64:
return "macosx-arm64";
case LINUX64:
return "linux-x86_64";
case LINUXARM64:
return "linux-arm64";
case LINUXARM32:
return "linux-armhf";
default:
throw new IllegalArgumentException();
}
}

public String getJavaFxClassifier() {
NativePlatforms platform = getCurrentPlatform();
switch(platform) {
case WIN32: return "win32";
case WIN64: return "win";
case MAC64: return "mac";
case MACARM64: return "mac-aarch64";
case LINUX64: return "linux";
case LINUXARM64: return "linux-aarch64";
case LINUXARM32: return "linux-arm32-monocle";
default: throw new IllegalArgumentException();
switch (platform) {
case WIN32:
return "win32";
case WIN64:
return "win";
case MAC64:
return "mac";
case MACARM64:
return "mac-aarch64";
case LINUX64:
return "linux";
case LINUXARM64:
return "linux-aarch64";
case LINUXARM32:
return "linux-arm32-monocle";
default:
throw new IllegalArgumentException();
}
}
}

0 comments on commit c29dd12

Please sign in to comment.