Config constructor

Config({
  1. Uri? filename,
  2. PackageConfig? packageConfig,
  3. Uri? libclangDylib,
  4. required Uri output,
  5. Uri? outputObjC,
  6. SymbolFile? symbolFile,
  7. Language language = Language.c,
  8. required List<Uri> entryPoints,
  9. bool shouldIncludeHeaderFunc(
    1. Uri header
    )?,
  10. List<String>? compilerOpts,
  11. Map<String, List<VarArgFunction>> varArgFunctions = const <String, List<VarArgFunction>>{},
  12. DeclarationFilters? functionDecl,
  13. DeclarationFilters? structDecl,
  14. DeclarationFilters? unionDecl,
  15. DeclarationFilters? enumClassDecl,
  16. DeclarationFilters? unnamedEnumConstants,
  17. DeclarationFilters? globals,
  18. DeclarationFilters? macroDecl,
  19. DeclarationFilters? typedefs,
  20. DeclarationFilters? objcInterfaces,
  21. DeclarationFilters? objcProtocols,
  22. DeclarationFilters? objcCategories,
  23. bool includeUnusedTypedefs = false,
  24. bool includeTransitiveObjCInterfaces = false,
  25. bool includeTransitiveObjCProtocols = false,
  26. bool includeTransitiveObjCCategories = true,
  27. bool generateForPackageObjectiveC = false,
  28. bool sort = false,
  29. bool useSupportedTypedefs = true,
  30. List<LibraryImport> libraryImports = const <LibraryImport>[],
  31. Map<String, ImportedType> usrTypeMappings = const <String, ImportedType>{},
  32. List<ImportedType> typedefTypeMappings = const <ImportedType>[],
  33. List<ImportedType> structTypeMappings = const <ImportedType>[],
  34. List<ImportedType> unionTypeMappings = const <ImportedType>[],
  35. List<ImportedType> nativeTypeMappings = const <ImportedType>[],
  36. CommentType? commentType,
  37. CompoundDependencies structDependencies = CompoundDependencies.full,
  38. CompoundDependencies unionDependencies = CompoundDependencies.full,
  39. PackingValue? structPackingOverrideFunc(
    1. Declaration declaration
    )?,
  40. String? interfaceModuleFunc(
    1. Declaration declaration
    )?,
  41. String? protocolModuleFunc(
    1. Declaration declaration
    )?,
  42. String wrapperName = 'NativeLibrary',
  43. String? wrapperDocComment,
  44. String? preamble,
  45. bool useDartHandle = true,
  46. bool silenceEnumWarning = false,
  47. bool shouldExposeFunctionTypedefFunc(
    1. Declaration declaration
    )?,
  48. bool isLeafFunctionFunc(
    1. Declaration declaration
    )?,
  49. bool enumShouldBeIntFunc(
    1. Declaration declaration
    )?,
  50. bool unnamedEnumsShouldBeIntFunc(
    1. Declaration declaration
    )?,
  51. FfiNativeConfig ffiNativeConfig = const FfiNativeConfig(enabled: false),
  52. bool ignoreSourceErrors = false,
  53. bool formatOutput = true,
  54. ExternalVersions externalVersions = const ExternalVersions(),
})

Implementation

factory Config({
  Uri? filename,
  PackageConfig? packageConfig,
  Uri? libclangDylib,
  required Uri output,
  Uri? outputObjC,
  SymbolFile? symbolFile,
  Language language = Language.c,
  required List<Uri> entryPoints,
  bool Function(Uri header)? shouldIncludeHeaderFunc,
  List<String>? compilerOpts,
  Map<String, List<VarArgFunction>> varArgFunctions =
      const <String, List<VarArgFunction>>{},
  DeclarationFilters? functionDecl,
  DeclarationFilters? structDecl,
  DeclarationFilters? unionDecl,
  DeclarationFilters? enumClassDecl,
  DeclarationFilters? unnamedEnumConstants,
  DeclarationFilters? globals,
  DeclarationFilters? macroDecl,
  DeclarationFilters? typedefs,
  DeclarationFilters? objcInterfaces,
  DeclarationFilters? objcProtocols,
  DeclarationFilters? objcCategories,
  bool includeUnusedTypedefs = false,
  bool includeTransitiveObjCInterfaces = false,
  bool includeTransitiveObjCProtocols = false,
  bool includeTransitiveObjCCategories = true,
  bool generateForPackageObjectiveC = false,
  bool sort = false,
  bool useSupportedTypedefs = true,
  List<LibraryImport> libraryImports = const <LibraryImport>[],
  Map<String, ImportedType> usrTypeMappings = const <String, ImportedType>{},
  List<ImportedType> typedefTypeMappings = const <ImportedType>[],
  List<ImportedType> structTypeMappings = const <ImportedType>[],
  List<ImportedType> unionTypeMappings = const <ImportedType>[],
  List<ImportedType> nativeTypeMappings = const <ImportedType>[],
  CommentType? commentType,
  CompoundDependencies structDependencies = CompoundDependencies.full,
  CompoundDependencies unionDependencies = CompoundDependencies.full,
  PackingValue? Function(Declaration declaration)? structPackingOverrideFunc,
  String? Function(Declaration declaration)? interfaceModuleFunc,
  String? Function(Declaration declaration)? protocolModuleFunc,
  String wrapperName = 'NativeLibrary',
  String? wrapperDocComment,
  String? preamble,
  bool useDartHandle = true,
  bool silenceEnumWarning = false,
  bool Function(Declaration declaration)? shouldExposeFunctionTypedefFunc,
  bool Function(Declaration declaration)? isLeafFunctionFunc,
  bool Function(Declaration declaration)? enumShouldBeIntFunc,
  bool Function(Declaration declaration)? unnamedEnumsShouldBeIntFunc,
  FfiNativeConfig ffiNativeConfig = const FfiNativeConfig(enabled: false),
  bool ignoreSourceErrors = false,
  bool formatOutput = true,
  ExternalVersions externalVersions = const ExternalVersions(),
}) =>
    ConfigImpl(
      filename: filename == null ? null : Uri.file(filename.toFilePath()),
      packageConfig: packageConfig,
      libclangDylib: Uri.file(
          libclangDylib?.toFilePath() ?? findDylibAtDefaultLocations()),
      output: Uri.file(output.toFilePath()),
      outputObjC:
          Uri.file(outputObjC?.toFilePath() ?? '${output.toFilePath()}.m'),
      symbolFile: symbolFile,
      language: language,
      entryPoints: entryPoints,
      shouldIncludeHeaderFunc: shouldIncludeHeaderFunc ?? (_) => true,
      compilerOpts: compilerOpts ?? defaultCompilerOpts(),
      varArgFunctions: varArgFunctions,
      functionDecl: functionDecl ?? DeclarationFilters.excludeAll,
      structDecl: structDecl ?? DeclarationFilters.excludeAll,
      unionDecl: unionDecl ?? DeclarationFilters.excludeAll,
      enumClassDecl: enumClassDecl ?? DeclarationFilters.excludeAll,
      unnamedEnumConstants:
          unnamedEnumConstants ?? DeclarationFilters.excludeAll,
      globals: globals ?? DeclarationFilters.excludeAll,
      macroDecl: macroDecl ?? DeclarationFilters.excludeAll,
      typedefs: typedefs ?? DeclarationFilters.excludeAll,
      objcInterfaces: objcInterfaces ?? DeclarationFilters.excludeAll,
      objcProtocols: objcProtocols ?? DeclarationFilters.excludeAll,
      objcCategories: objcCategories ?? DeclarationFilters.excludeAll,
      includeUnusedTypedefs: includeUnusedTypedefs,
      includeTransitiveObjCInterfaces: includeTransitiveObjCInterfaces,
      includeTransitiveObjCProtocols: includeTransitiveObjCProtocols,
      includeTransitiveObjCCategories: includeTransitiveObjCCategories,
      generateForPackageObjectiveC: generateForPackageObjectiveC,
      sort: sort,
      useSupportedTypedefs: useSupportedTypedefs,
      libraryImports: Map<String, LibraryImport>.fromEntries(
          libraryImports.map((import) =>
              MapEntry<String, LibraryImport>(import.name, import))),
      usrTypeMappings: usrTypeMappings,
      typedefTypeMappings: Map<String, ImportedType>.fromEntries(
          typedefTypeMappings.map((import) =>
              MapEntry<String, ImportedType>(import.nativeType, import))),
      structTypeMappings: Map<String, ImportedType>.fromEntries(
          structTypeMappings.map((import) =>
              MapEntry<String, ImportedType>(import.nativeType, import))),
      unionTypeMappings: Map<String, ImportedType>.fromEntries(
          unionTypeMappings.map((import) =>
              MapEntry<String, ImportedType>(import.nativeType, import))),
      nativeTypeMappings: Map<String, ImportedType>.fromEntries(
          nativeTypeMappings.map((import) =>
              MapEntry<String, ImportedType>(import.nativeType, import))),
      commentType: commentType ?? CommentType.def(),
      structDependencies: structDependencies,
      unionDependencies: unionDependencies,
      structPackingOverrideFunc: structPackingOverrideFunc ?? (_) => null,
      interfaceModuleFunc: interfaceModuleFunc ?? (_) => null,
      protocolModuleFunc: protocolModuleFunc ?? (_) => null,
      wrapperName: wrapperName,
      wrapperDocComment: wrapperDocComment,
      preamble: preamble,
      useDartHandle: useDartHandle,
      silenceEnumWarning: silenceEnumWarning,
      shouldExposeFunctionTypedefFunc:
          shouldExposeFunctionTypedefFunc ?? (_) => false,
      isLeafFunctionFunc: isLeafFunctionFunc ?? (_) => false,
      enumShouldBeIntFunc: enumShouldBeIntFunc ?? (_) => false,
      unnamedEnumsShouldBeIntFunc:
          unnamedEnumsShouldBeIntFunc ?? (_) => false,
      ffiNativeConfig: ffiNativeConfig,
      ignoreSourceErrors: ignoreSourceErrors,
      formatOutput: formatOutput,
      externalVersions: externalVersions,
    );