[infra] Split up `package:native_assets_cli` (#2259) Closes: https://github.com/dart-lang/native/issues/999 Splits up `package:native_assets_cli` in `package:hooks`, `package:code_assets` and `package:data_assets`. Renames `package:native_assets_builder` to `package:hooks_runner`. The dependencies are as follows: * `hooks` has dev dependencies on `code_assets` and `data_assets` because all the integration tests use these asset types. * `hooks_runner` has a dependency on `code_assets` due to the kernel-encoding `KernelAssets` which is used to bundle the code-assets asset-mapping in various SDKs. * `hooks_runner` has a dev dependency on `data_assets` because the integration tests use it. Versions: * The split up packages continue numbering from the original version. (It doesn't really matter, we'll need to go to 1.0.0 in the future anyway.) Internal package structure: * This PR does not reorganize packages. It moves the files exactly to the same path. This could use cleanup, but let's try to get this PR as small as possible. CI: * Two workflows are combined. (This could likely use some cleanup, especially trying to collect coverage across all packages in the workspace instead of a single package at the time.) Publishing: * These packages will now need their autopublishing set up. I'll do this after we bump the version to non-wip. Rolling: * This will need to be rolled into the Dart and Flutter SDKs. Changing the dependencies there and fixing whatever test setup explicitly mentioning the package names.
This repository is home to Dart packages related to FFI and native assets building and bundling.
| Package | Description | Issues | Version |
|---|---|---|---|
| code_assets | This package contains the Dart API for code assets in hook/build.dart and hook/link.dart. | ||
| data_assets | This package contains the Dart API for data assets in hook/build.dart and hook/link.dart. | ||
| ffi | Utilities for working with Foreign Function Interface (FFI) code. | ||
| ffigen | Generator for FFI bindings, using LibClang to parse C, Objective-C, and Swift files. | ||
| hooks | This package contains the API for hook/build.dart and hook/link.dart. | ||
| hooks_runner | This package is the backend that invokes hook/build.dart and hook/link.dart from Dart and Flutter. | ||
| jni | A library to access JNI from Dart and Flutter that acts as a support library for package:jnigen. | ||
| jnigen | A Dart bindings generator for Java and Kotlin that uses JNI under the hood to interop with Java virtual machine. | ||
| native_toolchain_c | A library to invoke the native C compiler installed on the host machine. | ||
| objective_c | A library to access Objective C from Flutter that acts as a support library for package:ffigen. | ||
| swift2objc | A tool for generating bindings that allow interop between Dart and Swift code. | ||
| swiftgen | A tool for generating bindings that allow interop between Dart and Swift code. |
Packages not on this repo but also related to FFI and native assets. ❤️
| Package | Description | Version |
|---|---|---|
| native_toolchain_cmake | A library to invoke CMake for Dart Native Assets. | |
| native_toolchain_go | A library to invoke the native Go compiler installed on the host machine. | |
| native_toolchain_rust | A library to invoke the native Rust compiler installed on the host machine. |
For information about our publishing automation and release process, see https://github.com/dart-lang/ecosystem/wiki/Publishing-automation.
For additional information about contributing, see our contributing page.