/// This is copied from Cargokit (which is the official way to use it currently) /// Details: https://fzyzcjy.github.io/flutter_rust_bridge/manual/integrate/builtin import 'dart:io'; import 'package:path/path.dart' as path; import 'artifacts_provider.dart'; import 'builder.dart'; import 'environment.dart'; import 'options.dart'; import 'target.dart'; class BuildCMake { final CargokitUserOptions userOptions; BuildCMake({required this.userOptions}); Future build() async { final targetPlatform = Environment.targetPlatform; final target = Target.forFlutterName(Environment.targetPlatform); if (target == null) { throw Exception("Unknown target platform: $targetPlatform"); } final environment = BuildEnvironment.fromEnvironment(isAndroid: false); final provider = ArtifactProvider(environment: environment, userOptions: userOptions); final artifacts = await provider.getArtifacts([target]); final libs = artifacts[target]!; for (final lib in libs) { if (lib.type == AritifactType.dylib) { File(lib.path) .copySync(path.join(Environment.outputDir, lib.finalFileName)); } } } }