generateDl method

Future<void> generateDl({
  1. required String path,
})

Generates code for accessing the library file

Implementation

Future<void> generateDl({
  required String path,
}) async {
  String filePath = p.join(path, "dl.dart");
  File file = File(filePath);
  await file.create(recursive: true);

  IOSink fileSink = file.openWrite(mode: FileMode.writeOnly);

  fileSink.writeln(
    "// ignore_for_file: public_member_api_docs, always_specify_types, avoid_positional_boolean_parameters, avoid_classes_with_only_static_members",
  );
  fileSink.writeImport(
    packageName: "dart:ffi",
  );
  fileSink.writeImport(
    packageName: "dart:io",
  );

  fileSink.writeln(
    'DynamicLibrary dl = Platform.isWindows ? DynamicLibrary.open("steam_api64.dll") : Platform.isLinux ? DynamicLibrary.open("libsteam_api.so") : DynamicLibrary.open("libsteam_api.dylib");\n',
  );

  await fileSink.flush();
  await fileSink.close();
}