@@ -6,17 +6,19 @@ import '../lib/storage/lookup.dart';
66
77import 'compile.dart' ;
88
9- Future <void > main (List <String > args ) async {
10- if (args .isEmpty) {
9+ Future <void > main (List <String > arguments ) async {
10+ if (arguments .isEmpty) {
1111 print (Messages .specifyDartEntryPoint);
1212 exit (1 );
1313 }
1414 final root = Directory .current.uri;
15- final entryPoint = File (args [0 ]);
15+ final entryPoint = File (arguments [0 ]);
1616 if (! entryPoint.existsSync ()) {
1717 print (Messages .specifyDartEntryPoint);
1818 exit (1 );
1919 }
20+ bool native = (arguments.length > 1 && arguments[1 ] == Arguments .native ) || (arguments.length > 2 && arguments[2 ] == Arguments .native );
21+ bool lua = (arguments.length > 1 && arguments[1 ] == Arguments .lua) || (arguments.length > 2 && arguments[2 ] == Arguments .lua);
2022 final dotDartTool = findDotDartTool ();
2123 if (dotDartTool == null ) {
2224 print (Messages .runPubGet);
@@ -29,17 +31,21 @@ Future<void> main(List<String> args) async {
2931 }
3032 final projectName = basename (projectRoot);
3133 final packageRoot = findPackageRoot (dotDartTool);
32- final packageNativeRoot = Directory (packageRoot.toFilePath () + Directories .native );
3334 final resultPackageRoot = Directory (root.toFilePath () + Directories .package);
3435 if (resultPackageRoot.existsSync ()) resultPackageRoot.deleteSync (recursive: true );
35- final nativeRoot = Directory (root.toFilePath () + Directories .native );
36- final luaRoot = Directory (root.toFilePath () + Directories .lua);
37- if (! resultPackageRoot.existsSync ()) resultPackageRoot.createSync ();
38- if (luaRoot.existsSync ()) copyLua (luaRoot, resultPackageRoot);
36+ if (native ) {
37+ final packageNativeRoot = Directory (packageRoot.toFilePath () + Directories .native );
38+ final nativeRoot = Directory (root.toFilePath () + Directories .native );
39+ if (! resultPackageRoot.existsSync ()) resultPackageRoot.createSync ();
40+ copyLibrary (packageNativeRoot, resultPackageRoot);
41+ compileNative (nativeRoot, packageNativeRoot, projectName);
42+ if (nativeRoot.existsSync ()) copyNative (nativeRoot, projectName, resultPackageRoot);
43+ }
44+ if (lua) {
45+ final luaRoot = Directory (root.toFilePath () + Directories .lua);
46+ if (luaRoot.existsSync ()) copyLua (luaRoot, resultPackageRoot);
47+ }
3948 compileDart (resultPackageRoot, entryPoint);
40- copyLibrary (packageNativeRoot, resultPackageRoot);
41- compileNative (nativeRoot, packageNativeRoot, projectName);
42- if (nativeRoot.existsSync ()) copyNative (nativeRoot, projectName, resultPackageRoot);
4349 archive (resultPackageRoot, projectName);
4450 resultPackageRoot.deleteSync (recursive: true );
4551}
0 commit comments