[native_assets_cli] Separate out public API (#885)

This does not change any of the public API yet, but it slims down the API surface of `package:native_assets_cli` to the bare minimum.

Internal details may be accessed in `package:native_assets_builder` via:

```dart
import 'package:native_assets_cli/native_assets_cli_internal.dart';
```

This enables the yaml serialization/deserialization to live in one place and be unit tested as one.

One hack is that we also access `package:native_assets_cli/native_assets_cli_internal.dart` in `package:native_toolchain_c` in the unit tests to depend on the C compilers provided on the Dart CI.
62 files changed
tree: 3416eb3a9d028a4285424d0b8a7b3f3d91c975c8
  1. .github/
  2. pkgs/
  3. tools/
  4. AUTHORS
  5. CONTRIBUTING.md
  6. LICENSE
  7. README.md
README.md

Coverage Status

Overview

This repository is home to Dart packages related to FFI and native assets building and bundling.

Packages

PackageDescriptionVersion
ffigenGenerator for FFI bindings, using LibClang to parse C, Objective-C, and Swift files.pub package
jniA library to access JNI from Dart and Flutter that acts as a support library for package:jnigen.pub package
jnigenA Dart bindings generator for Java and Kotlin that uses JNI under the hood to interop with Java virtual machine.pub package
native_assets_builderThis package is the backend that invokes top-level build.dart scripts.pub package
native_assets_cliA library that contains the argument and file formats for implementing a native assets CLI.pub package
native_toolchain_cA library to invoke the native C compiler installed on the host machine.pub package

Publishing automation

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.