Gomuks SDK Rewrite #2

Closed
Henry-Hiles wants to merge 34 commits from go into main
4 changed files with 19 additions and 5 deletions
Showing only changes of commit 8d43313512 - Show all commits

working build of generated file

Henry Hiles 2026-01-24 12:20:52 +00:00
No known key found for this signature in database

View file

@ -23,6 +23,7 @@
perSystem =
{
lib,
pkgs,
system,
...
@ -62,6 +63,7 @@
pkgs.sqlite
])
}:./.dart_tool/hooks_runner/shared/nexus/build/gomuks";
CPATH = lib.makeSearchPath "include" [ pkgs.glibc.dev ];
# ANDROID_HOME = "${android.androidsdk}/libexec/android-sdk";
# ANDROID_SDK_ROOT = ANDROID_HOME;

View file

@ -8,7 +8,11 @@ import "package:nexus/models/sync_status.dart";
import "package:nexus/src/third_party/gomuks.g.dart";
import "package:flutter_riverpod/flutter_riverpod.dart";
void gomuksCallback(Pointer<Char> command, int requestId, GomuksBuffer data) {
void gomuksCallback(
Pointer<Char> command,
int requestId,
GomuksBorrowedBuffer data,
) {
try {
final muksEventType = command.cast<Utf8>().toDartString();
final Map<String, dynamic> decodedMuksEvent = data.toJson();
@ -34,9 +38,9 @@ class ClientController extends Notifier<int> {
GomuksStart(
handle,
Pointer.fromFunction<Void Function(Pointer<Char>, Int64, GomuksBuffer)>(
gomuksCallback,
),
Pointer.fromFunction<
Void Function(Pointer<Char>, Int64, GomuksBorrowedBuffer)
>(gomuksCallback),
);
return handle;

View file

@ -5,6 +5,14 @@ import "dart:typed_data";
import "package:ffi/ffi.dart";
import "package:nexus/src/third_party/gomuks.g.dart";
extension GomuksBufferToJson on GomuksBorrowedBuffer {
Map<String, dynamic> toJson() {
final bytes = toBytes();
if (bytes.isEmpty) return {};
return jsonDecode(utf8.decode(bytes));
}
}
extension JsonToGomuksBuffer on Map<String, dynamic> {
GomuksBuffer toGomuksBuffer() {
final jsonString = json.encode(this);

View file

@ -76,7 +76,7 @@ void main(List<String> args) async {
),
headers: Headers(
entryPoints: [File(join(buildDir.path, "libgomuks.h")).uri],
// compilerOptions: ["-I${String.fromEnvironment("CPATH")}"],
compilerOptions: ["--no-warnings"],
),
functions: Functions.includeAll,
).generate();