mirror of
https://mirror.ghproxy.com/https://github.com/StarCitizenToolBox/app.git
synced 2024-12-24 09:23:42 +08:00
41 lines
1.2 KiB
Dart
41 lines
1.2 KiB
Dart
|
/// 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<void> 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));
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|