Skip to content

Commit 37ceca8

Browse files
committed
refactor(ffi): split direct engine backends
1 parent de05a4c commit 37ceca8

29 files changed

Lines changed: 3505 additions & 3611 deletions

NativeScript/CMakeLists.txt

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -239,20 +239,37 @@ set(FFI_NAPI_SOURCE_FILES
239239
ffi/napi/ClassBuilder.mm
240240
)
241241

242+
set(FFI_DIRECT_SHARED_SOURCE_FILES
243+
ffi/shared/direct/EmbeddedMetadata.mm
244+
)
245+
242246
set(FFI_HERMES_DIRECT_SOURCE_FILES
247+
${FFI_DIRECT_SHARED_SOURCE_FILES}
243248
ffi/hermes/jsi/NativeApiJsi.mm
244249
)
245250

246251
set(FFI_V8_DIRECT_SOURCE_FILES
252+
${FFI_DIRECT_SHARED_SOURCE_FILES}
247253
ffi/v8/NativeApiV8.mm
254+
ffi/v8/NativeApiV8HostObjects.mm
255+
ffi/v8/NativeApiV8Runtime.mm
256+
ffi/v8/NativeApiV8Value.mm
248257
)
249258

250259
set(FFI_JSC_DIRECT_SOURCE_FILES
260+
${FFI_DIRECT_SHARED_SOURCE_FILES}
251261
ffi/jsc/NativeApiJSC.mm
262+
ffi/jsc/NativeApiJSCHostObjects.mm
263+
ffi/jsc/NativeApiJSCRuntime.mm
264+
ffi/jsc/NativeApiJSCValue.mm
252265
)
253266

254267
set(FFI_QUICKJS_DIRECT_SOURCE_FILES
268+
${FFI_DIRECT_SHARED_SOURCE_FILES}
269+
ffi/quickjs/NativeApiQuickJSHostObjects.mm
255270
ffi/quickjs/NativeApiQuickJS.mm
271+
ffi/quickjs/NativeApiQuickJSRuntime.mm
272+
ffi/quickjs/NativeApiQuickJSValue.mm
256273
)
257274

258275
set(SOURCE_FILES

NativeScript/ffi/hermes/jsi/NativeApiJsi.mm

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414
#include <atomic>
1515
#include <cctype>
1616
#include <cmath>
17-
#include <cstdio>
1817
#include <cstdint>
18+
#include <cstdio>
1919
#include <cstdlib>
2020
#include <cstring>
2121
#include <limits>
@@ -29,9 +29,9 @@
2929
#include <unordered_set>
3030
#include <vector>
3131

32-
#include "ffi.h"
3332
#include "Metadata.h"
3433
#include "MetadataReader.h"
34+
#include "ffi.h"
3535

3636
@protocol NativeApiJsiClassBuilderProtocol
3737
@end
@@ -60,22 +60,24 @@ @protocol NativeApiJsiClassBuilderProtocol
6060
using metagen::MDSectionOffset;
6161
using metagen::MDTypeKind;
6262

63-
#include "NativeApiJsiBridge.inc"
64-
#include "NativeApiJsiHostObjects.inc"
65-
#include "NativeApiJsiCallbacks.inc"
66-
#include "NativeApiJsiConversion.inc"
67-
#include "NativeApiJsiInvocation.inc"
68-
#include "NativeApiJsiClassBuilder.inc"
69-
#include "NativeApiJsiHostObject.inc"
63+
// clang-format off
64+
#include "jsi/NativeApiJsiBridge.h"
65+
#include "jsi/NativeApiJsiHostObjects.h"
66+
#include "jsi/NativeApiJsiCallbacks.h"
67+
#include "jsi/NativeApiJsiConversion.h"
68+
#include "jsi/NativeApiJsiInvocation.h"
69+
#include "jsi/NativeApiJsiClassBuilder.h"
70+
#include "jsi/NativeApiJsiHostObject.h"
71+
// clang-format on
7072

7173
} // namespace
7274

73-
#include "NativeApiJsiInstall.inc"
75+
#include "jsi/NativeApiJsiInstall.h"
7476

7577
} // namespace nativescript
7678

77-
extern "C" void NativeScriptInstallNativeApiJSI(
78-
facebook::jsi::Runtime* runtime, const char* metadataPath) {
79+
extern "C" void NativeScriptInstallNativeApiJSI(facebook::jsi::Runtime* runtime,
80+
const char* metadataPath) {
7981
if (runtime == nullptr) {
8082
return;
8183
}
@@ -84,5 +86,4 @@ @protocol NativeApiJsiClassBuilderProtocol
8486
nativescript::InstallNativeApiJSI(*runtime, config);
8587
}
8688

87-
8889
#endif // TARGET_ENGINE_HERMES

NativeScript/ffi/hermes/jsi/README.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,18 @@ API access.
55

66
The backend is split by FFI responsibility:
77

8-
- `NativeApiJsiBridge.inc` owns metadata indexing, symbol lookup, scheduler
8+
- `../../shared/jsi/NativeApiJsiBridge.h` owns metadata indexing, symbol lookup, scheduler
99
state, and bridge lifetime caches.
10-
- `NativeApiJsiHostObjects.inc` owns class, object, protocol, pointer,
10+
- `../../shared/jsi/NativeApiJsiHostObjects.h` owns class, object, protocol, pointer,
1111
reference, struct, and union host objects.
12-
- `NativeApiJsiCallbacks.inc` owns signatures, libffi callback trampolines,
12+
- `../../shared/jsi/NativeApiJsiCallbacks.h` owns signatures, libffi callback trampolines,
1313
JS blocks, and native function pointer callback lifetime.
14-
- `NativeApiJsiConversion.inc` owns JSI/native type conversion and the
14+
- `../../shared/jsi/NativeApiJsiConversion.h` owns JSI/native type conversion and the
1515
`interop` helper surface.
16-
- `NativeApiJsiInvocation.inc` owns constants, enums, C function calls,
16+
- `../../shared/jsi/NativeApiJsiInvocation.h` owns constants, enums, C function calls,
1717
function pointer calls, and Objective-C selector dispatch.
18-
- `NativeApiJsiHostObject.inc` owns the public API host object exposed to JS.
19-
- `NativeApiJsiInstall.inc` owns runtime/global installation.
18+
- `../../shared/jsi/NativeApiJsiHostObject.h` owns the public API host object exposed to JS.
19+
- `../../shared/jsi/NativeApiJsiInstall.h` owns runtime/global installation.
2020

2121
The core installer is engine-host agnostic:
2222

0 commit comments

Comments
 (0)