12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- import sys.io.Process;
- using StringTools;
- enum abstract Arch(String) {
- final Arm64;
- final Arm;
- final X86;
- final X86_64;
- public function getNdllSuffix():String {
- return switch abstract {
- case Arm64: "Arm64";
- case Arm: "Arm";
- case X86_64: "64";
- case X86: "";
- };
- }
- }
- function getArchWindows() {
- return switch Sys.getEnv("PROCESSOR_ARCHITECTURE") {
- case "x86": X86;
- case "AMD64": X86_64;
- case "ARM64": Arm64;
- case other: throw 'Unknown CPU architecture: $other';
- };
- }
- function getArchUnix() {
- final uname = new Process("uname", ["-m"]);
- final arch = try {
- uname.stdout.readLine();
- } catch (e:haxe.io.Eof) {
- "";
- };
- uname.kill();
- uname.close();
- return switch arch {
- case "x86_64" | "amd64": X86_64;
- case "i386" | "x86": X86;
- case "arm64" | "aarch64": Arm64;
- case "arm": Arm;
- case other: throw 'Unknown CPU architecture: "$other"';
- };
- }
- function getArch() {
- return switch Sys.systemName() {
- case "Windows": getArchWindows();
- default: getArchUnix();
- };
- }
- function main() {
- final arch = getArch();
- final expectedNdllSubDir = Sys.systemName() + arch.getNdllSuffix() + "/";
- final ndllPath = neko.vm.Loader.local().getPath()[0];
- if (ndllPath.endsWith(expectedNdllSubDir)) {
- Sys.println("Success");
- } else {
- Sys.println('Failure: Expected $ndllPath to end with $expectedNdllSubDir');
- }
- }
|