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

This commit is contained in:
Mario Zechner 2024-04-30 12:30:13 +02:00
parent 9c9bcb9428
commit 0e00ce4f07
3 changed files with 9 additions and 5 deletions

View File

@ -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);
}
}

View File

@ -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();

View File

@ -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);