#!/usr/bin/env python3
import os, sys, re, subprocess
-if len(sys.argv) < 7:
- print("USAGE: /path/to/lightning.h /path/to/bindings/output /path/to/bindings/ /path/to/bindings/output.c debug lang")
+if len(sys.argv) < 8:
+ print("USAGE: /path/to/lightning.h /path/to/bindings/output /path/to/bindings/ /path/to/bindings/output.c debug lang target-tuple")
sys.exit(1)
if sys.argv[5] == "false":
target = java_strings.Target.JAVA
if sys.argv[6] == "android":
target = java_strings.Target.ANDROID
+ if "apple" in sys.argv[8]:
+ target = java_strings.Target.MACOS
elif sys.argv[6] == "typescript":
import typescript_strings
from typescript_strings import Consts
print("Only java, typescript, python, or c_sharp can be set for lang")
sys.exit(1)
-
consts = Consts(DEBUG, target=target, outdir=sys.argv[4])
local_git_version = os.getenv("LDK_GARBAGECOLLECTED_GIT_OVERRIDE")
rust_obj = None
arr_access = None
java_hu_ty = None
- if fn_arg.startswith("LDKPaymentPreimage") or fn_arg.startswith("LDKPaymentSecret") or fn_arg.startswith("LDKPaymentHash"):
+ if fn_arg.startswith("LDKPaymentPreimage") or fn_arg.startswith("LDKPaymentSecret") or fn_arg.startswith("LDKPaymentHash") or fn_arg.startswith("LDKChainHash"):
if fn_arg.startswith("LDKPaymentPreimage"):
fn_arg = "uint8_t (*" + fn_arg[19:] + ")[32]"
elif fn_arg.startswith("LDKPaymentSecret"):
fn_arg = "uint8_t (*" + fn_arg[17:] + ")[32]"
elif fn_arg.startswith("LDKPaymentHash"):
fn_arg = "uint8_t (*" + fn_arg[15:] + ")[32]"
+ elif fn_arg.startswith("LDKChainHash"):
+ fn_arg = "uint8_t (*" + fn_arg[13:] + ")[32]"
assert var_is_arr_regex.match(fn_arg[8:])
rust_obj = "LDKThirtyTwoBytes"
arr_access = "data"
arr_ty = "LDKStr"
fn_ty_arg = "Ljava/lang/String;"
fn_arg = fn_arg[6:].strip()
- elif fn_arg.startswith("LDKStr"):
+ elif fn_arg.startswith("LDKStr") or fn_arg.startswith("LDKAddress"):
rust_obj = "LDKStr"
arr_ty = "LDKStr"
java_ty = consts.java_type_map["String"]
java_hu_ty = consts.java_hu_type_map["String"]
c_ty = "jstring"
fn_ty_arg = "Ljava/lang/String;"
- fn_arg = fn_arg[6:].strip()
+ if fn_arg.startswith("LDKAddress"):
+ fn_arg = fn_arg[10:].strip()
+ else:
+ fn_arg = fn_arg[6:].strip()
arr_access = "chars"
arr_len = "len"
elif fn_arg.startswith("LDKError ") or fn_arg == "LDKError":