@@ -21,6 +21,8 @@ SRC_ROOT = os.path.dirname(
2121def get_out_dir(args):
2222 if args.target_os is not None:
2323 target_dir = [args.target_os]
24+ elif args.web:
25+ target_dir = ['wasm']
2426 else:
2527 target_dir = ['host']
2628
@@ -251,10 +253,15 @@ def to_gn_args(args):
251253
252254 # If building for WASM, set the GN args using 'to_gn_wasm_args' as most
253255 # of the Flutter SDK specific arguments are unused.
254- if args.target_os == 'wasm':
256+ if args.target_os == 'wasm' or args.web :
255257 to_gn_wasm_args(args, gn_args)
256258 return gn_args
257259
260+ gn_args['build_flutter_web_sdk'] = args.build_web_sdk
261+ gn_args['full_dart_sdk'] = args.full_dart_sdk
262+ if args.build_web_sdk or args.full_dart_sdk:
263+ gn_args['build_canvaskit'] = args.build_canvaskit
264+
258265 if args.enable_unittests:
259266 gn_args['enable_unittests'] = args.enable_unittests
260267
@@ -359,7 +366,6 @@ def to_gn_args(args):
359366 gn_args['embedder_for_target'] = args.embedder_for_target
360367 gn_args['dart_lib_export_symbols'] = False
361368 gn_args['flutter_runtime_mode'] = runtime_mode
362- gn_args['full_dart_sdk'] = args.full_dart_sdk
363369 gn_args['dart_version_git_info'] = not args.no_dart_version_git_info
364370
365371 gn_args['dart_lib_export_symbols'] = False
@@ -627,6 +633,12 @@ def to_gn_wasm_args(args, gn_args):
627633 gn_args['skia_canvaskit_enable_webgpu'] = False
628634 is_profile_build = args.runtime_mode == 'profile' or args.runtime_mode == 'debug'
629635 gn_args['skia_canvaskit_profile_build'] = is_profile_build
636+ gn_args['flutter_prebuilt_dart_sdk'] = True
637+
638+ # TODO(jacksongardner): Make this based off of the input argument rather
639+ # than forced to true, once the recipes are updated.
640+ gn_args['build_canvaskit'] = True
641+ gn_args['build_flutter_web_sdk'] = True
630642
631643
632644def parse_args(args):
@@ -702,6 +714,7 @@ def parse_args(args):
702714 parser.add_argument(
703715 '--wasm', dest='target_os', action='store_const', const='wasm'
704716 )
717+ parser.add_argument('--web', action='store_true', default=False)
705718 parser.add_argument(
706719 '--windows', dest='target_os', action='store_const', const='win'
707720 )
@@ -825,6 +838,27 @@ def parse_args(args):
825838 '--no-full-dart-sdk', dest='full_dart_sdk', action='store_false'
826839 )
827840
841+ parser.add_argument(
842+ '--build-web-sdk',
843+ default=False,
844+ action='store_true',
845+ help='build the flutter web sdk'
846+ )
847+ parser.add_argument(
848+ '--no-build-web-sdk', dest='build_web_sdk', action='store_false'
849+ )
850+
851+ parser.add_argument(
852+ '--build-canvaskit',
853+ default=False,
854+ action='store_true',
855+ help='build canvaskit from source'
856+ )
857+
858+ parser.add_argument(
859+ '--no-build-canvaskit', dest='build_canvaskit', action='store_false'
860+ )
861+
828862 parser.add_argument(
829863 '--ide',
830864 default='',
@@ -968,16 +1002,17 @@ def main(argv):
9681002 '--export-compile-commands',
9691003 ]
9701004
971- if args.ide != '':
972- command.append('--ide=%s' % args.ide)
973- elif sys.platform == 'darwin':
974- # On the Mac, generate an Xcode project by default.
975- command.append('--ide=xcode')
976- command.append('--xcode-project=flutter_engine')
977- command.append('--xcode-build-system=new')
978- elif sys.platform.startswith('win'):
979- # On Windows, generate a Visual Studio project.
980- command.append('--ide=vs')
1005+ if args.target_os != 'wasm':
1006+ if args.ide != '':
1007+ command.append('--ide=%s' % args.ide)
1008+ elif sys.platform == 'darwin':
1009+ # On the Mac, generate an Xcode project by default.
1010+ command.append('--ide=xcode')
1011+ command.append('--xcode-project=flutter_engine')
1012+ command.append('--xcode-build-system=new')
1013+ elif sys.platform.startswith('win'):
1014+ # On Windows, generate a Visual Studio project.
1015+ command.append('--ide=vs')
9811016
9821017 command.append('--export-compile-commands=default')
9831018
0 commit comments