mirror of
https://mirror.ghproxy.com/https://github.com/StarCitizenToolBox/app.git
synced 2024-10-23 18:34:22 +08:00
50 lines
1.5 KiB
Dart
50 lines
1.5 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:logging/logging.dart';
|
|
import 'package:path/path.dart' as path;
|
|
|
|
import 'artifacts_provider.dart';
|
|
import 'builder.dart';
|
|
import 'environment.dart';
|
|
import 'options.dart';
|
|
import 'target.dart';
|
|
|
|
final log = Logger('build_gradle');
|
|
|
|
class BuildGradle {
|
|
BuildGradle({required this.userOptions});
|
|
|
|
final CargokitUserOptions userOptions;
|
|
|
|
Future<void> build() async {
|
|
final targets = Environment.targetPlatforms.map((arch) {
|
|
final target = Target.forFlutterName(arch);
|
|
if (target == null) {
|
|
throw Exception(
|
|
"Unknown darwin target or platform: $arch, ${Environment.darwinPlatformName}");
|
|
}
|
|
return target;
|
|
}).toList();
|
|
|
|
final environment = BuildEnvironment.fromEnvironment(isAndroid: true);
|
|
final provider =
|
|
ArtifactProvider(environment: environment, userOptions: userOptions);
|
|
final artifacts = await provider.getArtifacts(targets);
|
|
|
|
for (final target in targets) {
|
|
final libs = artifacts[target]!;
|
|
final outputDir = path.join(Environment.outputDir, target.android!);
|
|
Directory(outputDir).createSync(recursive: true);
|
|
|
|
for (final lib in libs) {
|
|
if (lib.type == AritifactType.dylib) {
|
|
File(lib.path).copySync(path.join(outputDir, lib.finalFileName));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|