Skip to content

Commit 5851d1c

Browse files
committed
Use temprary workaround for BackgroundProcess_start argument generation, and add header include fix in local dependency compilation script
1 parent ad87781 commit 5851d1c

File tree

6 files changed

+43
-20
lines changed

6 files changed

+43
-20
lines changed

.github/workflows/swift.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,14 @@ jobs:
2020
cd rust-lightning
2121
# git checkout origin/2021-03-java-bindings-base
2222
# git checkout v0.0.100
23-
git checkout bfd04db6318fe374988d651607f1219749e42a52
23+
git checkout 557c7143fddde4a3879bb209a71f8f574c604caf
2424
echo "rust-lightning commit hash:"
2525
git rev-parse HEAD
2626
cd ..
2727
# git clone https://github.com/lightningdevkit/ldk-c-bindings
2828
git clone https://github.com/TheBlueMatt/ldk-c-bindings
2929
cd ldk-c-bindings
30-
git checkout 18337a0191c3abdca8d51861c328dd3d2d9ca6b7
30+
git checkout 1bb5ae1b34aeb74009b7b4b5ebefc957cddc30a6
3131
echo "ldk-c-bindings commit hash:"
3232
git rev-parse HEAD
3333
cd ..

bindings/LDK/Bindings.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6057,7 +6057,7 @@ withUnsafePointer(to: scorer.cOpaqueStruct!) { (scorerPointer: UnsafePointer<LDK
60576057
*/
60586058

60596059
public class func get_ldk_swift_bindings_version() -> String {
6060-
return "46e7ffb00908db26c46f9c226903baedf93d316c"
6060+
return "ad87781697755854cb84ee584d82448b2c05a0bd"
60616061
}
60626062

60636063
}

bindings/LDK/structs/BackgroundProcessor.swift

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,22 +6,22 @@ public class BackgroundProcessor: NativeTypeWrapper {
66
internal var cOpaqueStruct: LDKBackgroundProcessor?
77

88

9-
/* DEFAULT_CONSTRUCTOR_START */
10-
#warning("This method passes non-cloneable objects by owned value. Here be dragons.")
11-
@available(*, deprecated, message: "This method passes non-cloneable objects by owned value. Here be dragons.")
12-
public init(persister: ChannelManagerPersister, event_handler: EventHandler, chain_monitor: ChainMonitor, channel_manager: ChannelManager, net_graph_msg_handler: NetGraphMsgHandler?, peer_manager: PeerManager, logger: Logger) {
13-
Self.instanceCounter += 1
14-
self.instanceNumber = Self.instanceCounter
15-
16-
let graphMessageHandler = net_graph_msg_handler?.dangle().cOpaqueStruct! ?? LDKNetGraphMsgHandler(inner: nil, is_owned: true)
17-
9+
/* DEFAULT_CONSTRUCTOR_START */
10+
#warning("This method passes non-cloneable objects by owned value. Here be dragons.")
11+
@available(*, deprecated, message: "This method passes non-cloneable objects by owned value. Here be dragons.")
12+
public init(persister: ChannelManagerPersister, event_handler: EventHandler, chain_monitor: ChainMonitor, channel_manager: ChannelManager, net_graph_msg_handler: NetGraphMsgHandler?, peer_manager: PeerManager, logger: Logger) {
13+
Self.instanceCounter += 1
14+
self.instanceNumber = Self.instanceCounter
15+
16+
let graphMessageHandler = net_graph_msg_handler?.dangle().cOpaqueStruct! ?? LDKNetGraphMsgHandler(inner: nil, is_owned: true)
17+
1818
self.cOpaqueStruct = withUnsafePointer(to: chain_monitor.cOpaqueStruct!) { (chain_monitorPointer: UnsafePointer<LDKChainMonitor>) in
19-
withUnsafePointer(to: channel_manager.cOpaqueStruct!) { (channel_managerPointer: UnsafePointer<LDKChannelManager>) in
20-
withUnsafePointer(to: peer_manager.cOpaqueStruct!) { (peer_managerPointer: UnsafePointer<LDKPeerManager>) in
21-
BackgroundProcessor_start(persister.cOpaqueStruct!, event_handler.cOpaqueStruct!, chain_monitorPointer, channel_managerPointer, graphMessageHandler, peer_managerPointer, logger.cOpaqueStruct!)
22-
}
23-
}
24-
}
19+
withUnsafePointer(to: channel_manager.cOpaqueStruct!) { (channel_managerPointer: UnsafePointer<LDKChannelManager>) in
20+
withUnsafePointer(to: peer_manager.cOpaqueStruct!) { (peer_managerPointer: UnsafePointer<LDKPeerManager>) in
21+
BackgroundProcessor_start(persister.cOpaqueStruct!, event_handler.cOpaqueStruct!, chain_monitorPointer, channel_managerPointer, graphMessageHandler, peer_managerPointer, logger.cOpaqueStruct!)
22+
}
23+
}
24+
}
2525
super.init(conflictAvoidingVariableName: 0)
2626
}
2727
/* DEFAULT_CONSTRUCTOR_END */

ci/fix_header_includes.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,14 @@
11
import os
2+
import sys
23

34
directory_path = os.path.dirname(os.path.realpath(__file__))
4-
header_directory = f'{directory_path}/LDKSwift/Sources/LDKHeaders'
5+
default_header_directory = f'{directory_path}/LDKSwift/Sources/LDKHeaders'
6+
header_directory = sys.argv[1] if len(sys.argv) >= 2 else default_header_directory
57
# header_directory = f'{directory_path}/../xcode/LDKFramework'
68

9+
if not os.path.exists(header_directory):
10+
sys.exit(f'Directory "{header_directory}" does not exist')
11+
712
header_files = []
813

914
# Create a collection of local header (or C) files

src/generators/opaque_struct_generator.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,21 @@ def generate_opaque_struct(self, struct_name, struct_details, all_type_details={
5656
cloneability_type_message = '; '.join(cloneability_types)
5757
print(f'(opaque_struct_generator.py#constructor, warned, deprecated) {cloneability_warning}: {constructor_native_name} [{cloneability_type_message}]')
5858

59+
if constructor_native_name == 'BackgroundProcessor_start':
60+
previous_swift_argument = constructor_swift_arguments[4]
61+
previous_native_argument = constructor_native_arguments[4]
62+
new_swift_argument = 'net_graph_msg_handler: NetGraphMsgHandler?'
63+
new_native_argument = 'graphMessageHandler'
64+
print(f'''
65+
Replacing {constructor_native_name}:
66+
Swift argument `{previous_swift_argument}` -> `{new_swift_argument}`
67+
Native argument `{previous_native_argument}` -> `{new_native_argument}`
68+
''')
69+
70+
constructor_swift_arguments[4] = new_swift_argument
71+
constructor_native_call_prep += '\nlet graphMessageHandler = net_graph_msg_handler?.dangle().cOpaqueStruct! ?? LDKNetGraphMsgHandler(inner: nil, is_owned: true)\n'
72+
constructor_native_arguments[4] = new_native_argument
73+
5974

6075
mutating_output_file_contents = mutating_output_file_contents.replace('public init', f'{deprecation_prefix}public init')
6176

xcode/compile_dependency_binaries.sh

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ usage() {
1616
[ ! -d "${LDK_DIRECTORY}" ] && echo "Provided directory does not exist" && exit 1;
1717

1818

19-
2019
cp "${C_BINDINGS_SOURCE_DIRECTORY}/include/"*.h $FRAMEWORK_PROJECT_DIRECTORY_IOS
2120
cp "${C_BINDINGS_SOURCE_DIRECTORY}/include/"*.h $FRAMEWORK_PROJECT_DIRECTORY_MAC
2221
cp "${C_BINDINGS_SOURCE_DIRECTORY}/include/"*.h $DIRECT_BINDINGS_PROJECT_DIRECTORY
@@ -25,6 +24,10 @@ cp "${LDK_DIRECTORY}/ldk-net/ldk_net."{c,h} $FRAMEWORK_PROJECT_DIRECTORY_IOS
2524
cp "${LDK_DIRECTORY}/ldk-net/ldk_net."{c,h} $FRAMEWORK_PROJECT_DIRECTORY_MAC
2625
cp "${LDK_DIRECTORY}/ldk-net/ldk_net."{c,h} $DIRECT_BINDINGS_PROJECT_DIRECTORY
2726

27+
python3 ../ci/fix_header_includes.py $FRAMEWORK_PROJECT_DIRECTORY_IOS
28+
python3 ../ci/fix_header_includes.py $FRAMEWORK_PROJECT_DIRECTORY_MAC
29+
python3 ../ci/fix_header_includes.py $DIRECT_BINDINGS_PROJECT_DIRECTORY
30+
2831

2932
# build for Catalyst
3033
pushd $C_BINDINGS_SOURCE_DIRECTORY

0 commit comments

Comments
 (0)