@@ -45,24 +45,37 @@ internal actual object ZenohLoad {
4545 */
4646 private fun determineTarget (): Result <Target > = runCatching {
4747 val osName = System .getProperty(" os.name" ).lowercase()
48- val osArch = System .getProperty(" os.arch" )
48+ val osArch = System .getProperty(" os.arch" ).lowercase()
4949
5050 val target = when {
5151 osName.contains(" win" ) -> when {
52- osArch.contains(" x86_64" ) || osArch.contains(" amd64" ) -> Target .WINDOWS_X86_64_MSVC
53- else -> throw UnsupportedOperationException (" Unsupported architecture: $osArch " )
52+ osArch.contains(" x86_64" ) || osArch.contains(" amd64" ) || osArch.contains(" x64" ) ->
53+ Target .WINDOWS_X86_64_MSVC
54+
55+ osArch.contains(" aarch64" ) || osArch.contains(" arm64" ) ->
56+ Target .WINDOWS_AARCH64_MSVC
57+
58+ else -> throw UnsupportedOperationException (" Unsupported architecture on Windows: $osArch " )
5459 }
5560
56- osName.contains(" mac" ) -> when {
57- osArch.contains(" x86_64" ) || osArch.contains(" amd64" ) -> Target .APPLE_X86_64
58- osArch.contains(" aarch64" ) -> Target .APPLE_AARCH64
59- else -> throw UnsupportedOperationException (" Unsupported architecture: $osArch " )
61+ osName.contains(" mac" ) || osName.contains(" darwin" ) || osName.contains(" os x" ) -> when {
62+ osArch.contains(" x86_64" ) || osArch.contains(" amd64" ) || osArch.contains(" x64" ) ->
63+ Target .APPLE_X86_64
64+
65+ osArch.contains(" aarch64" ) || osArch.contains(" arm64" ) ->
66+ Target .APPLE_AARCH64
67+
68+ else -> throw UnsupportedOperationException (" Unsupported architecture on macOS: $osArch " )
6069 }
6170
6271 osName.contains(" nix" ) || osName.contains(" nux" ) || osName.contains(" aix" ) -> when {
63- osArch.contains(" x86_64" ) || osArch.contains(" amd64" ) -> Target .LINUX_X86_64
64- osArch.contains(" aarch64" ) -> Target .LINUX_AARCH64
65- else -> throw UnsupportedOperationException (" Unsupported architecture: $osArch " )
72+ osArch.contains(" x86_64" ) || osArch.contains(" amd64" ) || osArch.contains(" x64" ) ->
73+ Target .LINUX_X86_64
74+
75+ osArch.contains(" aarch64" ) || osArch.contains(" arm64" ) ->
76+ Target .LINUX_AARCH64
77+
78+ else -> throw UnsupportedOperationException (" Unsupported architecture on Linux/Unix: $osArch " )
6679 }
6780
6881 else -> throw UnsupportedOperationException (" Unsupported platform: $osName " )
0 commit comments