loadSimpleExtension method
void
loadSimpleExtension()
Implementation
void loadSimpleExtension() {
final dir = p.dirname(Platform.resolvedExecutable);
final String simpleLibPath;
String dictPath;
if (Platform.isWindows) {
simpleLibPath = p.join(dir, 'simple.dll');
// data\flutter_assets\packages\fts5_simple\dicts
dictPath = p.join(
dir, 'data', 'flutter_assets', 'packages', 'fts5_simple', 'dicts');
} else if (Platform.isMacOS) {
simpleLibPath = 'libsimple';
// ../Frameworks/App.framework/Resources/flutter_assets/packages/fts5_simple/dicts
dictPath = p.join(dir, '..', 'Frameworks', 'App.framework', 'Resources',
'flutter_assets', 'packages', 'fts5_simple');
dictPath = p.join(dictPath, 'dicts');
} else if (Platform.isLinux) {
simpleLibPath = p.join(dir, 'lib', 'libsimple.so');
// data/flutter_assets/packages/fts5_simple/dicts
dictPath = p.join(
dir, 'data', 'flutter_assets', 'packages', 'fts5_simple', 'dicts');
} else {
assert(false, 'Unsupported platform');
return;
}
debugPrint('simpleLibPath: $simpleLibPath');
debugPrint('dictPath: $dictPath');
try {
loadExtesnion(simpleLibPath);
} catch (e, s) {
debugPrint('Error loading simple extension: $e $s');
return;
}
final exist = Directory(dictPath).existsSync();
assert(exist, 'dictPath($dictPath) does not exist');
if (!exist) {
return;
}
select('select jieba_dict(?)', [dictPath]);
}