Skip to content

Commit bbe4745

Browse files
committed
refactor: organize ffi backend layers
1 parent df472eb commit bbe4745

93 files changed

Lines changed: 2649 additions & 2511 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,8 @@ packages/*/types
6565
SwiftBindgen
6666

6767
# Generated Objective-C/C dispatch wrappers
68-
NativeScript/ffi/GeneratedSignatureDispatch.inc
69-
NativeScript/ffi/GeneratedSignatureDispatch.inc.stamp
68+
NativeScript/ffi/shared/GeneratedSignatureDispatch.inc
69+
NativeScript/ffi/shared/GeneratedSignatureDispatch.inc.stamp
7070

7171
# React Native TurboModule package staging
7272
packages/react-native/dist/

NativeScript/CMakeLists.txt

Lines changed: 61 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -175,35 +175,69 @@ message(STATUS "NS_GSD_BACKEND = ${NS_GSD_BACKEND} (${NS_EFFECTIVE_GSD_BACKEND})
175175
# Set up sources
176176
include_directories(
177177
./
178+
ffi/shared
179+
ffi/v8
180+
ffi/hermes
181+
ffi/jsc
182+
ffi/quickjs
178183
../metadata-generator/include
179184
napi/common
180185
libffi/${LIBFFI_BUILD}/include
181186
)
182187

188+
set(FFI_SHARED_SOURCE_FILES
189+
ffi/shared/Tasks.cpp
190+
)
191+
192+
set(FFI_NAPI_SOURCE_FILES
193+
ffi/napi/AutoreleasePool.mm
194+
ffi/napi/Protocol.mm
195+
ffi/napi/ObjCBridge.mm
196+
ffi/napi/Block.mm
197+
ffi/napi/Class.mm
198+
ffi/napi/Closure.mm
199+
ffi/napi/ClassMember.mm
200+
ffi/napi/Cif.mm
201+
ffi/napi/TypeConv.mm
202+
ffi/napi/Util.mm
203+
ffi/napi/Struct.mm
204+
ffi/napi/ObjectRef.mm
205+
ffi/napi/JSObject.mm
206+
ffi/napi/Enum.mm
207+
ffi/napi/Variable.mm
208+
ffi/napi/Object.mm
209+
ffi/napi/CFunction.mm
210+
ffi/napi/Interop.mm
211+
ffi/napi/InlineFunctions.mm
212+
ffi/napi/ClassBuilder.mm
213+
ffi/napi/NativeScriptException.mm
214+
)
215+
216+
set(FFI_DIRECT_SOURCE_FILES
217+
ffi/shared/EngineDirectCall.mm
218+
)
219+
220+
set(FFI_V8_SOURCE_FILES
221+
ffi/v8/V8FastNativeApi.mm
222+
)
223+
224+
set(FFI_HERMES_SOURCE_FILES
225+
ffi/hermes/jsi/NativeApiJsi.mm
226+
ffi/hermes/HermesFastNativeApi.mm
227+
)
228+
229+
set(FFI_QUICKJS_SOURCE_FILES
230+
ffi/quickjs/QuickJSFastNativeApi.mm
231+
)
232+
233+
set(FFI_JSC_SOURCE_FILES
234+
ffi/jsc/JSCFastNativeApi.mm
235+
)
236+
183237
set(SOURCE_FILES
184-
ffi/AutoreleasePool.mm
185-
ffi/Protocol.mm
186-
ffi/ObjCBridge.mm
187-
ffi/Block.mm
188-
ffi/Class.mm
189-
ffi/Closure.mm
190-
ffi/ClassMember.mm
191-
ffi/Cif.mm
192-
ffi/TypeConv.mm
193-
ffi/Util.mm
194-
ffi/Struct.mm
195-
ffi/ObjectRef.mm
196-
ffi/JSObject.mm
197-
ffi/Enum.mm
198-
ffi/Variable.mm
199-
ffi/Object.mm
200-
ffi/CFunction.mm
201-
ffi/EngineDirectCall.mm
202-
ffi/Interop.mm
203-
ffi/InlineFunctions.mm
204-
ffi/ClassBuilder.mm
205-
ffi/NativeScriptException.mm
206-
ffi/Tasks.cpp
238+
${FFI_SHARED_SOURCE_FILES}
239+
${FFI_NAPI_SOURCE_FILES}
240+
${FFI_DIRECT_SOURCE_FILES}
207241
)
208242

209243
if(ENABLE_JS_RUNTIME)
@@ -248,7 +282,7 @@ if(ENABLE_JS_RUNTIME)
248282
napi/v8/v8-module-loader.cpp
249283
napi/v8/jsr.cpp
250284
napi/v8/SimpleAllocator.cpp
251-
ffi/V8FastNativeApi.mm
285+
${FFI_V8_SOURCE_FILES}
252286
)
253287

254288
elseif(TARGET_ENGINE_HERMES)
@@ -273,8 +307,7 @@ if(ENABLE_JS_RUNTIME)
273307
set(SOURCE_FILES
274308
${SOURCE_FILES}
275309
napi/hermes/jsr.cpp
276-
ffi/jsi/NativeApiJsi.mm
277-
ffi/HermesFastNativeApi.mm
310+
${FFI_HERMES_SOURCE_FILES}
278311
)
279312

280313
elseif(TARGET_ENGINE_QUICKJS)
@@ -307,7 +340,7 @@ if(ENABLE_JS_RUNTIME)
307340
# napi
308341
napi/quickjs/quickjs-api.c
309342
napi/quickjs/jsr.cpp
310-
ffi/QuickJSFastNativeApi.mm
343+
${FFI_QUICKJS_SOURCE_FILES}
311344
)
312345

313346
elseif(TARGET_ENGINE_JSC)
@@ -320,7 +353,7 @@ if(ENABLE_JS_RUNTIME)
320353
set(SOURCE_FILES ${SOURCE_FILES}
321354
napi/jsc/jsc-api.cpp
322355
napi/jsc/jsr.cpp
323-
ffi/JSCFastNativeApi.mm
356+
${FFI_JSC_SOURCE_FILES}
324357
)
325358
endif()
326359
else()

NativeScript/cli/main.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@
55
#include <iostream>
66
#include <string>
77

8-
#include "ffi/NativeScriptException.h"
8+
#include "ffi/napi/NativeScriptException.h"
99
#include "runtime/Bundle.h"
1010
#include "runtime/Runtime.h"
1111
#include "runtime/RuntimeConfig.h"
1212
#include "segappend.h"
13-
#include "ffi/Tasks.h"
13+
#include "ffi/shared/Tasks.h"
1414
#include "BundleLoader.h"
1515

1616
using namespace nativescript;
File renamed without changes.
File renamed without changes.

NativeScript/ffi/HermesFastNativeApi.mm renamed to NativeScript/ffi/hermes/HermesFastNativeApi.mm

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,16 @@
1616
#include <unordered_map>
1717
#include <vector>
1818

19-
#include "CFunction.h"
20-
#include "CallbackThreading.h"
21-
#include "Class.h"
22-
#include "ClassBuilder.h"
23-
#include "ClassMember.h"
24-
#include "Interop.h"
25-
#include "NativeScriptException.h"
26-
#include "ObjCBridge.h"
19+
#include "ffi/napi/CFunction.h"
20+
#include "ffi/napi/CallbackThreading.h"
21+
#include "ffi/napi/Class.h"
22+
#include "ffi/napi/ClassBuilder.h"
23+
#include "ffi/napi/ClassMember.h"
24+
#include "ffi/napi/Interop.h"
25+
#include "ffi/napi/NativeScriptException.h"
26+
#include "ffi/napi/ObjCBridge.h"
2727
#include "SignatureDispatch.h"
28-
#include "TypeConv.h"
28+
#include "ffi/napi/TypeConv.h"
2929

3030
namespace nativescript {
3131
namespace {
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)