# SPDX-FileCopyrightText: 2024 Foundation Devices Inc.
#
# SPDX-License-Identifier: MIT

name: tor
description: A multi-platform Flutter plugin for managing a Tor proxy. Based on arti.
version: 0.0.9
homepage: https://github.com/Foundation-Devices/tor
resolution: workspace

platforms:
  android:
  ios:
  linux:
  macos:
  windows:

environment:
  sdk: ^3.8.0
  flutter: '>=3.3.0'

dependencies:
  ffi: ^2.1.4
  flutter:
    sdk: flutter
  path_provider: ^2.1.5
  plugin_platform_interface: ^2.1.8

dev_dependencies:
  ffigen: ^20.1.1
  flutter_test:
    sdk: flutter
  lint: ^2.8.0

ffigen:
  output: 'lib/src/generated_bindings.dart'
  llvm-path:
    - '/usr/lib/llvm-14/lib/libclang.so.1'
  functions:
    include:
      - tor_.*
  structs:
    exclude:
      - .*
  unions:
    exclude:
      - .*
  enums:
    exclude:
      - _.*
  unnamed-enums:
    exclude:
      - _.*
  macros:
    exclude:
      - _.*
  globals:
    exclude:
      - _.*
  headers:
    entry-points:
      - 'rust/target/tor.h'

# 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.
  #
  # Please refer to README.md for a detailed explanation.
  plugin:
    platforms:
      android:
        ffiPlugin: true
      ios:
        ffiPlugin: true
      linux:
        ffiPlugin: true
      macos:
        ffiPlugin: true
      windows:
        ffiPlugin: true
