233 settings.executable_name = command_line.
argv0();
237 settings.enable_vm_service =
244 settings.enable_vm_service_publication =
253 &settings.vm_service_host);
259 &settings.vm_service_host);
262 if (settings.vm_service_host.empty()) {
263 settings.vm_service_host =
271 &settings.vm_service_port)) {
273 <<
"VM Service port specified was malformed. Will default to "
274 << settings.vm_service_port;
281 &settings.vm_service_port)) {
283 <<
"VM Service port specified was malformed. Will default to "
284 << settings.vm_service_port;
288 settings.may_insecurely_connect_to_all_domains = !command_line.
HasOption(
292 &settings.domain_network_policy);
296 settings.disable_service_auth_codes =
301 settings.enable_service_port_fallback =
305 settings.disable_dart_asserts =
308 settings.start_paused =
311 settings.enable_checked_mode =
314 settings.enable_dart_profiling =
317 settings.enable_software_rendering =
320 settings.endless_trace_buffer =
323 settings.trace_startup =
326 settings.enable_serial_gc =
330 settings.trace_skia =
true;
334 settings.trace_skia_allowlist.reset();
336 std::string trace_skia_allowlist;
338 &trace_skia_allowlist);
339 if (trace_skia_allowlist.size()) {
342 settings.trace_skia_allowlist = {
"skia.shaders"};
347 std::string trace_allowlist;
352 settings.trace_systrace =
356 &settings.trace_to_file);
358 settings.skia_deterministic_rendering_on_cpu =
361 settings.verbose_logging =
365 &settings.assets_path);
367 std::vector<std::string_view> aot_shared_library_name =
370 std::vector<std::string_view> vmservice_shared_library_name =
373 for (
auto path : vmservice_shared_library_name) {
374 settings.vmservice_snapshot_library_path.emplace_back(
path);
377 std::string snapshot_asset_path;
379 &snapshot_asset_path);
381 std::string vm_snapshot_data_filename;
383 &vm_snapshot_data_filename);
387 std::string vm_snapshot_instr_filename;
389 &vm_snapshot_instr_filename);
391 std::string isolate_snapshot_data_filename;
393 &isolate_snapshot_data_filename);
395 std::string isolate_snapshot_instr_filename;
398 &isolate_snapshot_instr_filename);
400 if (!aot_shared_library_name.empty()) {
401 for (std::string_view
name : aot_shared_library_name) {
402 settings.application_library_path.emplace_back(
name);
404 }
else if (!snapshot_asset_path.empty()) {
405 settings.vm_snapshot_data_path =
408 {snapshot_asset_path, vm_snapshot_instr_filename});
410 {snapshot_asset_path, isolate_snapshot_data_filename});
412 {snapshot_asset_path, isolate_snapshot_instr_filename});
416 &settings.temp_directory_path);
420 settings.leak_vm = leak_vm;
422 if (settings.icu_initialization_required) {
424 &settings.icu_data_path);
426 std::string icu_symbol_prefix, native_lib_path;
433 settings.icu_mapper = GetICUStaticMapping;
435 settings.icu_mapper = [icu_symbol_prefix, native_lib_path] {
442 settings.use_test_fonts =
444 settings.use_asset_fonts =
448 std::string enable_impeller_value;
450 &enable_impeller_value)) {
451 settings.enable_impeller =
452 enable_impeller_value.empty() ||
"true" == enable_impeller_value;
457 std::string impeller_backend_value;
459 &impeller_backend_value)) {
460 if (!impeller_backend_value.empty()) {
461 settings.requested_rendering_backend = impeller_backend_value;
466 settings.enable_vulkan_validation =
468 settings.enable_opengl_gpu_tracing =
470 settings.enable_vulkan_gpu_tracing =
473 settings.enable_embedder_api =
476 settings.prefetched_default_font_manager = command_line.
HasOption(
479 std::string all_dart_flags;
488 settings.dart_flags.push_back(
flag);
496 settings.dump_skp_on_shader_compilation =
499 settings.cache_sksl =
502 settings.purge_persistent_cache =
506 std::string old_gen_heap_size;
509 settings.old_gen_heap_size = std::stoi(old_gen_heap_size);
514 std::string resource_cache_max_bytes_threshold;
517 &resource_cache_max_bytes_threshold);
518 settings.resource_cache_max_bytes_threshold =
519 std::stoi(resource_cache_max_bytes_threshold);
523 std::string msaa_samples;
526 if (msaa_samples ==
"0") {
527 settings.msaa_samples = 0;
528 }
else if (msaa_samples ==
"1") {
529 settings.msaa_samples = 1;
530 }
else if (msaa_samples ==
"2") {
531 settings.msaa_samples = 2;
532 }
else if (msaa_samples ==
"4") {
533 settings.msaa_samples = 4;
534 }
else if (msaa_samples ==
"8") {
535 settings.msaa_samples = 8;
536 }
else if (msaa_samples ==
"16") {
537 settings.msaa_samples = 16;
539 FML_DLOG(
ERROR) <<
"Invalid value for --msaa-samples: '" << msaa_samples
540 <<
"' (expected 0, 1, 2, 4, 8, or 16).";
544 settings.enable_platform_isolates =