• Daco Harkes's avatar
    Reland "Native assets support for Linux" (#135097) · 2def9519
    Daco Harkes authored
    Reland of #134031. (Reverted in #135069.) Contains the fix for b/301051367 together with cl/567233346.
    
    Support for FFI calls with `@Native external` functions through Native assets on Linux. This enables bundling native code without any build-system boilerplate code.
    
    For more info see:
    
    * https://github.com/flutter/flutter/issues/129757
    
    ### Implementation details for Linux.
    
    Mainly follows the design of https://github.com/flutter/flutter/pull/130494.
    
    Some differences are:
    
    * Linux does not support cross compiling or compiling for multiple architectures, so this has not been implemented.
    * Linux has no add2app.
    
    The assets copying is done in the install-phase of the CMake build of a flutter app.
    CMake requires the native assets folder to exist, so we create it also when the feature is disabled or there are no assets.
    
    ### Tests
    
    This PR adds new tests to cover the various use cases.
    
    * packages/flutter_tools/test/general.shard/linux/native_assets_test.dart
      * Unit tests the Linux-specific part of building native assets.
    
    It also extends various existing tests:
    
    * packages/flutter_tools/test/integration.shard/native_assets_test.dart
      * Runs (incl hot reload/hot restart), builds, builds frameworks for Linux and flutter-tester.
    2def9519
Name
Last commit
Last update
..
debug_adapter Loading commit data...
test_data Loading commit data...
README.md Loading commit data...
analyze_all_templates_test.dart Loading commit data...
analyze_once_test.dart Loading commit data...
analyze_size_test.dart Loading commit data...
analyze_suggestions_integration_test.dart Loading commit data...
android_e2e_api_test.dart Loading commit data...
android_gradle_java_version_test.dart Loading commit data...
android_gradle_outputs_app_link_settings_test.dart Loading commit data...
android_gradle_print_build_variants_test.dart Loading commit data...
android_plugin_compilesdkversion_mismatch_test.dart Loading commit data...
android_plugin_example_app_build_test.dart Loading commit data...
android_plugin_ndkversion_mismatch_test.dart Loading commit data...
android_plugin_new_output_dir_test.dart Loading commit data...
background_isolate_test.dart Loading commit data...
bash_entrypoint_test.dart Loading commit data...
batch_entrypoint_test.dart Loading commit data...
break_on_framework_exceptions_test.dart Loading commit data...
build_ios_config_only_test.dart Loading commit data...
build_macos_config_only_test.dart Loading commit data...
cache_test.dart Loading commit data...
command_output_test.dart Loading commit data...
coverage_collection_test.dart Loading commit data...
daemon_mode_test.dart Loading commit data...
debugger_stepping_test.dart Loading commit data...
deferred_components_test.dart Loading commit data...
deprecated_gradle_settings_test.dart Loading commit data...
devtools_uri_test.dart Loading commit data...
downgrade_upgrade_integration_test.dart Loading commit data...
exit_code_test.dart Loading commit data...
expression_evaluation_test.dart Loading commit data...
flutter_attach_test.dart Loading commit data...
flutter_build_android_app_project_builddir_test.dart Loading commit data...
flutter_build_apk_verbose_test.dart Loading commit data...
flutter_build_config_only_test.dart Loading commit data...
flutter_build_preview_sdk.dart Loading commit data...
flutter_build_wasm_test.dart Loading commit data...
flutter_build_windows_test.dart Loading commit data...
flutter_build_with_compilation_error_test.dart Loading commit data...
flutter_gen_test.dart Loading commit data...
flutter_run_test.dart Loading commit data...
flutter_run_with_error_test.dart Loading commit data...
forbidden_imports_test.dart Loading commit data...
gen_l10n_test.dart Loading commit data...
gradle_non_android_plugin_test.dart Loading commit data...
hot_reload_errors_test.dart Loading commit data...
hot_reload_test.dart Loading commit data...
hot_reload_with_asset_test.dart Loading commit data...
lifetime_test.dart Loading commit data...
multidex_build_test.dart Loading commit data...
native_assets_test.dart Loading commit data...
observatory_port_test.dart Loading commit data...
overall_experience_test.dart Loading commit data...
plist_parser_test.dart Loading commit data...
shader_compiler_test.dart Loading commit data...
stateless_stateful_hot_reload_test.dart Loading commit data...
template_manifest_test.dart Loading commit data...
test_driver.dart Loading commit data...
test_test.dart Loading commit data...
test_utils.dart Loading commit data...
timeline_test.dart Loading commit data...
tool_backend_test.dart Loading commit data...
transition_test_utils.dart Loading commit data...
unit_coverage_test.dart Loading commit data...
variable_expansion_windows.dart Loading commit data...
variable_expansion_windows_test.dart Loading commit data...
vmservice_integration_test.dart Loading commit data...
web_plugin_registrant_test.dart Loading commit data...
xcode_backend_test.dart Loading commit data...