• Daco Harkes's avatar
    Native assets support for Linux (#134031) · 2337c64d
    Daco Harkes authored
    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.
    2337c64d
Name
Last commit
Last update
.github Loading commit data...
.vscode Loading commit data...
bin Loading commit data...
dev Loading commit data...
examples Loading commit data...
packages Loading commit data...
.ci.yaml Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
AUTHORS Loading commit data...
CODEOWNERS Loading commit data...
CODE_OF_CONDUCT.md Loading commit data...
CONTRIBUTING.md Loading commit data...
LICENSE Loading commit data...
PATENT_GRANT Loading commit data...
README.md Loading commit data...
TESTOWNERS Loading commit data...
analysis_options.yaml Loading commit data...
dartdoc_options.yaml Loading commit data...
flutter_console.bat Loading commit data...