瀏覽代碼

[flutter] Closes #2438, support static linking of native libraries.

Mario Zechner 1 年之前
父節點
當前提交
0e00ce4f07
共有 3 個文件被更改,包括 9 次插入5 次删除
  1. 6 2
      spine-flutter/lib/init.dart
  2. 1 1
      spine-flutter/lib/init_web.dart
  3. 2 2
      spine-flutter/lib/spine_flutter.dart

+ 6 - 2
spine-flutter/lib/init.dart

@@ -53,6 +53,10 @@ class SpineFlutterFFI {
   SpineFlutterFFI(this.dylib, this.allocator);
 }
 
-Future<SpineFlutterFFI> initSpineFlutterFFI() async {
-  return SpineFlutterFFI(_dylib, malloc);
+Future<SpineFlutterFFI> initSpineFlutterFFI(bool useStaticLinkage) async {
+  if (useStaticLinkage) {
+    return SpineFlutterFFI(DynamicLibrary.process(), malloc);
+  } else {
+    return SpineFlutterFFI(_dylib, malloc);
+  }
 }

+ 1 - 1
spine-flutter/lib/init_web.dart

@@ -44,7 +44,7 @@ class SpineFlutterFFI {
   SpineFlutterFFI(this.dylib, this.allocator);
 }
 
-Future<SpineFlutterFFI> initSpineFlutterFFI() async {
+Future<SpineFlutterFFI> initSpineFlutterFFI(bool useStaticLinkage) async {
   if (_module == null) {
     Memory.init();
 

+ 2 - 2
spine-flutter/lib/spine_flutter.dart

@@ -50,8 +50,8 @@ export 'spine_widget.dart';
 late SpineFlutterBindings _bindings;
 late Allocator _allocator;
 
-Future<void> initSpineFlutter({bool enableMemoryDebugging = false}) async {
-  final ffi = await initSpineFlutterFFI();
+Future<void> initSpineFlutter({bool useStaticLinkage = false, bool enableMemoryDebugging = false}) async {
+  final ffi = await initSpineFlutterFFI(useStaticLinkage);
   _bindings = SpineFlutterBindings(ffi.dylib);
   _allocator = ffi.allocator;
   if (enableMemoryDebugging) _bindings.spine_enable_debug_extension(-1);