From dce7fab111082cf5573191dd2695eed2aeec303c Mon Sep 17 00:00:00 2001 From: Zachary King Date: Mon, 10 Jun 2024 12:15:01 -0700 Subject: [PATCH 1/2] support arm --- .../lib/src/_initialize_path_ops_io.dart | 26 ++++++++++++++++--- .../lib/src/_initialize_tessellator_io.dart | 26 ++++++++++++++++--- 2 files changed, 46 insertions(+), 6 deletions(-) diff --git a/packages/vector_graphics_compiler/lib/src/_initialize_path_ops_io.dart b/packages/vector_graphics_compiler/lib/src/_initialize_path_ops_io.dart index 33cf375c..67b3304b 100644 --- a/packages/vector_graphics_compiler/lib/src/_initialize_path_ops_io.dart +++ b/packages/vector_graphics_compiler/lib/src/_initialize_path_ops_io.dart @@ -2,7 +2,9 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +import 'dart:ffi'; import 'dart:io'; + import 'svg/path_ops.dart'; /// Look up the location of the pathops from flutter's artifact cache. @@ -20,13 +22,31 @@ bool initializePathOpsFromFlutterCache() { final String platform; final String executable; if (Platform.isWindows) { - platform = 'windows-x64'; + if (Abi.current() == Abi.windowsX64) { + platform = 'windows-x64'; + } else if (Abi.current() == Abi.windowsIA32) { + platform = 'windows-arm64'; + } else { + throw Exception('Unsupported ABI: ${Abi.current()}'); + } executable = 'path_ops.dll'; } else if (Platform.isMacOS) { - platform = 'darwin-x64'; + if (Abi.current() == Abi.macosX64) { + platform = 'darwin-x64'; + } else if (Abi.current() == Abi.macosArm64) { + platform = 'darwin-arm64'; + } else { + throw Exception('Unsupported ABI: ${Abi.current()}'); + } executable = 'libpath_ops.dylib'; } else if (Platform.isLinux) { - platform = 'linux-x64'; + if (Abi.current() == Abi.linuxX64) { + platform = 'linux-x64'; + } else if (Abi.current() == Abi.linuxArm64) { + platform = 'linux-arm64'; + } else { + throw Exception('Unsupported ABI: ${Abi.current()}'); + } executable = 'libpath_ops.so'; } else { print('path_ops not supported on ${Platform.localeName}'); diff --git a/packages/vector_graphics_compiler/lib/src/_initialize_tessellator_io.dart b/packages/vector_graphics_compiler/lib/src/_initialize_tessellator_io.dart index 9783089e..86c512a3 100644 --- a/packages/vector_graphics_compiler/lib/src/_initialize_tessellator_io.dart +++ b/packages/vector_graphics_compiler/lib/src/_initialize_tessellator_io.dart @@ -2,7 +2,9 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +import 'dart:ffi'; import 'dart:io'; + import 'svg/tessellator.dart'; /// Look up the location of the tessellator from flutter's artifact cache. @@ -20,13 +22,31 @@ bool initializeTessellatorFromFlutterCache() { final String platform; final String executable; if (Platform.isWindows) { - platform = 'windows-x64'; + if (Abi.current() == Abi.windowsX64) { + platform = 'windows-x64'; + } else if (Abi.current() == Abi.windowsIA32) { + platform = 'windows-arm64'; + } else { + throw Exception('Unsupported ABI: ${Abi.current()}'); + } executable = 'libtessellator.dll'; } else if (Platform.isMacOS) { - platform = 'darwin-x64'; + if (Abi.current() == Abi.macosX64) { + platform = 'darwin-x64'; + } else if (Abi.current() == Abi.macosArm64) { + platform = 'darwin-arm64'; + } else { + throw Exception('Unsupported ABI: ${Abi.current()}'); + } executable = 'libtessellator.dylib'; } else if (Platform.isLinux) { - platform = 'linux-x64'; + if (Abi.current() == Abi.linuxX64) { + platform = 'linux-x64'; + } else if (Abi.current() == Abi.linuxArm64) { + platform = 'linux-arm64'; + } else { + throw Exception('Unsupported ABI: ${Abi.current()}'); + } executable = 'libtessellator.so'; } else { print('Tesselation not supported on ${Platform.localeName}'); From ddd0122f629376684c9eb8db7b039b99c5a174af Mon Sep 17 00:00:00 2001 From: Zachary King Date: Mon, 10 Jun 2024 12:32:14 -0700 Subject: [PATCH 2/2] fix a typo --- .../lib/src/_initialize_path_ops_io.dart | 2 +- .../lib/src/_initialize_tessellator_io.dart | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/vector_graphics_compiler/lib/src/_initialize_path_ops_io.dart b/packages/vector_graphics_compiler/lib/src/_initialize_path_ops_io.dart index 67b3304b..c13a7a3b 100644 --- a/packages/vector_graphics_compiler/lib/src/_initialize_path_ops_io.dart +++ b/packages/vector_graphics_compiler/lib/src/_initialize_path_ops_io.dart @@ -24,7 +24,7 @@ bool initializePathOpsFromFlutterCache() { if (Platform.isWindows) { if (Abi.current() == Abi.windowsX64) { platform = 'windows-x64'; - } else if (Abi.current() == Abi.windowsIA32) { + } else if (Abi.current() == Abi.windowsArm64) { platform = 'windows-arm64'; } else { throw Exception('Unsupported ABI: ${Abi.current()}'); diff --git a/packages/vector_graphics_compiler/lib/src/_initialize_tessellator_io.dart b/packages/vector_graphics_compiler/lib/src/_initialize_tessellator_io.dart index 86c512a3..abe540e9 100644 --- a/packages/vector_graphics_compiler/lib/src/_initialize_tessellator_io.dart +++ b/packages/vector_graphics_compiler/lib/src/_initialize_tessellator_io.dart @@ -24,7 +24,7 @@ bool initializeTessellatorFromFlutterCache() { if (Platform.isWindows) { if (Abi.current() == Abi.windowsX64) { platform = 'windows-x64'; - } else if (Abi.current() == Abi.windowsIA32) { + } else if (Abi.current() == Abi.windowsArm64) { platform = 'windows-arm64'; } else { throw Exception('Unsupported ABI: ${Abi.current()}');