name: {{projectName}}
description: {{description}}
version: 0.0.1
homepage:

environment:
  sdk: {{dartSdkVersionBounds}}
{{#withPlatformChannelPluginHook}}
  flutter: ">=2.5.0"
{{/withPlatformChannelPluginHook}}
{{#withFfiPluginHook}}
  flutter: ">={{minFrameworkVersionFfiPlugin}}"
{{/withFfiPluginHook}}

dependencies:
  flutter:
    sdk: flutter
{{#web}}
  flutter_web_plugins:
    sdk: flutter
{{/web}}
  plugin_platform_interface: ^2.0.2

dev_dependencies:
{{#withFfiPluginHook}}
  ffi: ^2.0.1
  ffigen: ^6.1.2
{{/withFfiPluginHook}}
  flutter_test:
    sdk: flutter
  flutter_lints: ^2.0.0

# For information on the generic Dart part of this file, see the
# following page: https://dart.dev/tools/pub/pubspec

# The following section is specific to Flutter packages.
flutter:
  # This section identifies this Flutter project as a plugin project.
  # The 'pluginClass' specifies the class (in Java, Kotlin, Swift, Objective-C, etc.)
  # which should be registered in the plugin registry. This is required for
  # using method channels.
  # The Android 'package' specifies package in which the registered class is.
  # This is required for using method channels on Android.
  # The 'ffiPlugin' specifies that native code should be built and bundled.
  # This is required for using `dart:ffi`.
  # All these are used by the tooling to maintain consistency when
  # adding or updating assets for this project.
{{#withFfiPluginHook}}
  #
  # Please refer to README.md for a detailed explanation.
  plugin:
    platforms:
{{#no_platforms}}
    # This FFI plugin project was generated without specifying any
    # platforms with the `--platform` argument. If you see the `some_platform` map below, remove it and
    # then add platforms following the instruction here:
    # https://flutter.dev/docs/development/packages-and-plugins/developing-packages#plugin-platforms
    # -------------------
      some_platform:
        ffiPlugin: true
    # -------------------
{{/no_platforms}}
{{#android}}
      android:
        ffiPlugin: true
{{/android}}
{{#ios}}
      ios:
        ffiPlugin: true
{{/ios}}
{{#linux}}
      linux:
        ffiPlugin: true
{{/linux}}
{{#macos}}
      macos:
        ffiPlugin: true
{{/macos}}
{{#windows}}
      windows:
        ffiPlugin: true
{{/windows}}
{{/withFfiPluginHook}}
{{#withPlatformChannelPluginHook}}
  plugin:
    platforms:
{{#no_platforms}}
    # This plugin project was generated without specifying any
    # platforms with the `--platform` argument. If you see the `some_platform` map below, remove it and
    # then add platforms following the instruction here:
    # https://flutter.dev/docs/development/packages-and-plugins/developing-packages#plugin-platforms
    # -------------------
      some_platform:
        pluginClass: somePluginClass
    # -------------------
{{/no_platforms}}
{{#android}}
      android:
        package: {{androidIdentifier}}
        pluginClass: {{pluginClass}}
{{/android}}
{{#ios}}
      ios:
        pluginClass: {{pluginClass}}
{{/ios}}
{{#linux}}
      linux:
        pluginClass: {{pluginClass}}
{{/linux}}
{{#macos}}
      macos:
        pluginClass: {{pluginClass}}
{{/macos}}
{{#windows}}
      windows:
        pluginClass: {{pluginClass}}CApi
{{/windows}}
{{#web}}
      web:
        pluginClass: {{pluginDartClass}}Web
        fileName: {{projectName}}_web.dart
{{/web}}
{{/withPlatformChannelPluginHook}}

  # To add assets to your plugin package, add an assets section, like this:
  # assets:
  #   - images/a_dot_burr.jpeg
  #   - images/a_dot_ham.jpeg
  #
  # For details regarding assets in packages, see
  # https://flutter.dev/assets-and-images/#from-packages
  #
  # An image asset can refer to one or more resolution-specific "variants", see
  # https://flutter.dev/assets-and-images/#resolution-aware

  # To add custom fonts to your plugin package, add a fonts section here,
  # in this "flutter" section. Each entry in this list should have a
  # "family" key with the font family name, and a "fonts" key with a
  # list giving the asset and other descriptors for the font. For
  # example:
  # fonts:
  #   - family: Schyler
  #     fonts:
  #       - asset: fonts/Schyler-Regular.ttf
  #       - asset: fonts/Schyler-Italic.ttf
  #         style: italic
  #   - family: Trajan Pro
  #     fonts:
  #       - asset: fonts/TrajanPro.ttf
  #       - asset: fonts/TrajanPro_Bold.ttf
  #         weight: 700
  #
  # For details regarding fonts in packages, see
  # https://flutter.dev/custom-fonts/#from-packages
