diff --git a/CHANGELOG.md b/CHANGELOG.md index 2d90855d..3de820db 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ generate a typedef for the `Function`. - Use Dart wrapper types in args and returns of ObjCBlocks. - Bump min SDK version to 3.2.0-114.0.dev. +- Renamed `asset` to `assetId` for `ffi-native`. # 9.0.1 diff --git a/README.md b/README.md index 61464fde..3f2d0d8b 100644 --- a/README.md +++ b/README.md @@ -543,7 +543,7 @@ type-map: ```yaml ffi-native: - asset: 'myasset' # Optional. + assetId: 'myasset' # Optional. ``` diff --git a/example/ffinative/config.yaml b/example/ffinative/config.yaml index 397dbba8..1bb3dac0 100644 --- a/example/ffinative/config.yaml +++ b/example/ffinative/config.yaml @@ -2,9 +2,9 @@ name: NativeLibrary ffi-native: - # asset: 'assetname' # (optional) + assetId: 'package:ffinative_example/generated_bindings.dart' # (optional) description: Bindings to `headers/example.h`. -output: 'generated_bindings.dart' +output: 'lib/generated_bindings.dart' headers: entry-points: - 'headers/example.h' diff --git a/example/ffinative/generated_bindings.dart b/example/ffinative/lib/generated_bindings.dart similarity index 52% rename from example/ffinative/generated_bindings.dart rename to example/ffinative/lib/generated_bindings.dart index 389620d8..13c7d2b9 100644 --- a/example/ffinative/generated_bindings.dart +++ b/example/ffinative/lib/generated_bindings.dart @@ -7,28 +7,35 @@ import 'dart:ffi' as ffi; /// Adds 2 integers. -@ffi.Native(symbol: 'sum') +@ffi.Native( + symbol: 'sum', assetId: 'package:ffinative_example/generated_bindings.dart') external int sum( int a, int b, ); /// Subtracts 2 integers. -@ffi.Native(symbol: 'subtract') +@ffi.Native( + symbol: 'subtract', + assetId: 'package:ffinative_example/generated_bindings.dart') external int subtract( int a, int b, ); /// Multiplies 2 integers, returns pointer to an integer,. -@ffi.Native Function(ffi.Int, ffi.Int)>(symbol: 'multiply') +@ffi.Native Function(ffi.Int, ffi.Int)>( + symbol: 'multiply', + assetId: 'package:ffinative_example/generated_bindings.dart') external ffi.Pointer multiply( int a, int b, ); /// Divides 2 integers, returns pointer to a float. -@ffi.Native Function(ffi.Int, ffi.Int)>(symbol: 'divide') +@ffi.Native Function(ffi.Int, ffi.Int)>( + symbol: 'divide', + assetId: 'package:ffinative_example/generated_bindings.dart') external ffi.Pointer divide( int a, int b, @@ -36,7 +43,8 @@ external ffi.Pointer divide( /// Divides 2 floats, returns a pointer to double. @ffi.Native Function(ffi.Float, ffi.Float)>( - symbol: 'dividePrecision') + symbol: 'dividePrecision', + assetId: 'package:ffinative_example/generated_bindings.dart') external ffi.Pointer dividePrecision( double a, double b, diff --git a/ffigen.schema.json b/ffigen.schema.json index a557a87c..5c196f1f 100644 --- a/ffigen.schema.json +++ b/ffigen.schema.json @@ -418,12 +418,12 @@ "type": "object", "additionalProperties": false, "properties": { - "asset": { + "assetId": { "type": "string" } }, "required": [ - "asset" + "assetId" ] } ] diff --git a/lib/src/code_generator/func.dart b/lib/src/code_generator/func.dart index 5e081cf7..cbdebe7e 100644 --- a/lib/src/code_generator/func.dart +++ b/lib/src/code_generator/func.dart @@ -111,8 +111,8 @@ class Func extends LookUpBinding { functionType.getFfiDartType(w, writeArgumentNames: false); if (ffiNativeConfig.enabled) { - final assetString = ffiNativeConfig.asset != null - ? ", asset: '${ffiNativeConfig.asset}'" + final assetString = ffiNativeConfig.assetId != null + ? ", assetId: '${ffiNativeConfig.assetId}'" : ''; final isLeafString = isLeaf ? ', isLeaf: true' : ''; s.write( diff --git a/lib/src/config_provider/config_types.dart b/lib/src/config_provider/config_types.dart index 75d5fcae..a4cf1426 100644 --- a/lib/src/config_provider/config_types.dart +++ b/lib/src/config_provider/config_types.dart @@ -384,9 +384,9 @@ class ObjCModulePrefixer { class FfiNativeConfig { final bool enabled; - final String? asset; + final String? assetId; - const FfiNativeConfig({required this.enabled, this.asset}); + const FfiNativeConfig({required this.enabled, this.assetId}); } class SymbolFile { diff --git a/lib/src/config_provider/spec_utils.dart b/lib/src/config_provider/spec_utils.dart index ff4e1b76..86a4bc5a 100644 --- a/lib/src/config_provider/spec_utils.dart +++ b/lib/src/config_provider/spec_utils.dart @@ -602,6 +602,6 @@ FfiNativeConfig ffiNativeExtractor(dynamic yamlConfig) { final yamlMap = yamlConfig as Map?; return FfiNativeConfig( enabled: true, - asset: yamlMap?[strings.ffiNativeAsset] as String?, + assetId: yamlMap?[strings.ffiNativeAsset] as String?, ); } diff --git a/lib/src/strings.dart b/lib/src/strings.dart index 7613289a..0918f48e 100644 --- a/lib/src/strings.dart +++ b/lib/src/strings.dart @@ -263,7 +263,7 @@ const doubleNaN = 'double.nan'; const dartHandleUsr = 'c:@S@_Dart_Handle'; const ffiNative = 'ffi-native'; -const ffiNativeAsset = 'asset'; +const ffiNativeAsset = 'assetId'; Directory? _tmpDir; diff --git a/test/native_test/native_test.dart b/test/native_test/native_test.dart index cc31709e..9c734a56 100644 --- a/test/native_test/native_test.dart +++ b/test/native_test/native_test.dart @@ -58,6 +58,7 @@ void main() { rethrow; } }); + test('bool', () { expect(bindings.Function1Bool(true), false); expect(bindings.Function1Bool(false), true); @@ -112,6 +113,7 @@ void main() { } } }); + test('Array Workaround: Range Errors', () { final struct1 = bindings.getStruct1(); // Index (get) above range.