import 'dart:ffi'; import 'dart:io'; abstract class Lib { static DynamicLibrary? _daliLib; static String? _base; static DynamicLibrary _loadDaliLib(String base) { if (Platform.isIOS || Platform.isMacOS) { return DynamicLibrary.executable(); } else if (Platform.isWindows) { return DynamicLibrary.open('$base.dll'); } else { return DynamicLibrary.open('$base.so'); } } static DynamicLibrary init(String base) { _base = base; _daliLib = _loadDaliLib(base); return _daliLib!; } static DynamicLibrary get shared { if (_daliLib == null) { throw Exception('Library not initialized !'); } return _daliLib!; } static String get base { if (_base == null) { throw Exception('Library not initialized !'); } return _base!; } }