emnapi 1.11.0 → 2.0.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/CMakeLists.txt +127 -57
  2. package/README.md +164 -776
  3. package/cmake/wasm32.cmake +0 -3
  4. package/common.gypi +16 -14
  5. package/dist/library_async_work.js +390 -0
  6. package/dist/library_napi.js +1476 -2802
  7. package/dist/library_threadsafe_function.js +1178 -0
  8. package/dist/library_v8.js +1594 -0
  9. package/emnapi.gyp +37 -0
  10. package/include/node/emnapi.h +13 -2
  11. package/include/node/js_native_api_types.h +22 -0
  12. package/include/node/node.h +198 -0
  13. package/include/node/node_api.h +0 -10
  14. package/include/node/node_buffer.h +92 -0
  15. package/include/node/node_object_wrap.h +132 -0
  16. package/include/node/node_version.h +110 -0
  17. package/include/node/uv/unix.h +1 -0
  18. package/include/node/uv/version.h +43 -0
  19. package/include/node/uv.h +6 -0
  20. package/index.js +15 -7
  21. package/lib/wasm32-emscripten/libemnapi-mt.a +0 -0
  22. package/lib/wasm32-emscripten/libemnapi.a +0 -0
  23. package/lib/wasm32-wasip1-threads/libemnapi-mt.a +0 -0
  24. package/lib/wasm32-wasip1-threads/libemnapi-napi-rs-mt.a +0 -0
  25. package/lib/wasm32-wasip1-threads/libemnapi.a +0 -0
  26. package/lib/wasm64-emscripten/libemnapi-mt.a +0 -0
  27. package/lib/wasm64-emscripten/libemnapi.a +0 -0
  28. package/package.json +1 -1
  29. package/src/async_cleanup_hook.c +6 -6
  30. package/src/emnapi_internal.h +5 -10
  31. package/src/js_native_api.c +37 -21
  32. package/src/js_native_api_internal.h +66 -0
  33. package/src/node_api.c +1 -1
  34. package/src/threadsafe_function.c +2 -2
  35. package/src/uv/unix/thread.c +21 -0
  36. package/src/v8/array.cc +19 -0
  37. package/src/v8/boolean.cc +26 -0
  38. package/src/v8/date.cc +15 -0
  39. package/src/v8/exception.cc +48 -0
  40. package/src/v8/external.cc +23 -0
  41. package/src/v8/function.cc +35 -0
  42. package/src/v8/handle_scope.cc +46 -0
  43. package/src/v8/internal.cc +126 -0
  44. package/src/v8/internal.h +41 -0
  45. package/src/v8/isolate.cc +35 -0
  46. package/src/v8/json.cc +25 -0
  47. package/src/v8/node.cc +24 -0
  48. package/src/v8/number.cc +62 -0
  49. package/src/v8/object.cc +106 -0
  50. package/src/v8/script.cc +75 -0
  51. package/src/v8/string.cc +104 -0
  52. package/src/v8/template.cc +234 -0
  53. package/src/v8/try_catch.cc +50 -0
  54. package/src/v8/v8_impl.h +42 -0
  55. package/src/v8/value.cc +138 -0
  56. package/lib/wasm32/libdlmalloc-mt.a +0 -0
  57. package/lib/wasm32/libdlmalloc.a +0 -0
  58. package/lib/wasm32/libemmalloc-mt.a +0 -0
  59. package/lib/wasm32/libemmalloc.a +0 -0
  60. package/lib/wasm32/libemnapi-basic-mt.a +0 -0
  61. package/lib/wasm32/libemnapi-basic.a +0 -0
  62. package/lib/wasm32/libemnapi.a +0 -0
  63. package/lib/wasm32-emscripten/libemnapi-basic.a +0 -0
  64. package/lib/wasm32-wasi/libemnapi-basic-mt.a +0 -0
  65. package/lib/wasm32-wasi/libemnapi-basic.a +0 -0
  66. package/lib/wasm32-wasi/libemnapi.a +0 -0
  67. package/lib/wasm32-wasi-threads/libemnapi-basic-mt.a +0 -0
  68. package/lib/wasm32-wasi-threads/libemnapi-basic-napi-rs-mt.a +0 -0
  69. package/lib/wasm32-wasi-threads/libemnapi-basic.a +0 -0
  70. package/lib/wasm32-wasi-threads/libemnapi-mt.a +0 -0
  71. package/lib/wasm32-wasi-threads/libemnapi-napi-rs-mt.a +0 -0
  72. package/lib/wasm32-wasi-threads/libemnapi.a +0 -0
  73. package/lib/wasm32-wasip1/libemnapi-basic-mt.a +0 -0
  74. package/lib/wasm32-wasip1/libemnapi-basic.a +0 -0
  75. package/lib/wasm32-wasip1/libemnapi.a +0 -0
  76. package/lib/wasm32-wasip1-threads/libemnapi-basic-mt.a +0 -0
  77. package/lib/wasm32-wasip1-threads/libemnapi-basic-napi-rs-mt.a +0 -0
  78. package/lib/wasm32-wasip1-threads/libemnapi-basic.a +0 -0
  79. package/lib/wasm64-emscripten/libemnapi-basic.a +0 -0
package/CMakeLists.txt CHANGED
@@ -1,9 +1,10 @@
1
1
  cmake_minimum_required(VERSION 3.13)
2
2
 
3
- project(emnapi LANGUAGES C ASM)
3
+ project(emnapi LANGUAGES C CXX ASM)
4
4
 
5
5
  option(EMNAPI_INSTALL_SRC "EMNAPI_INSTALL_SRC" OFF)
6
6
  option(EMNAPI_FIND_NODE_ADDON_API "EMNAPI_FIND_NODE_ADDON_API" OFF)
7
+ option(EMNAPI_BUILD_BASIC_LIBS "EMNAPI_BUILD_BASIC_LIBS" OFF)
7
8
 
8
9
  if(CMAKE_SYSTEM_NAME STREQUAL "Emscripten")
9
10
  set(IS_EMSCRIPTEN ON)
@@ -29,6 +30,27 @@ else()
29
30
  set(IS_WASM32_WASIP1_THREADS OFF)
30
31
  endif()
31
32
 
33
+ set(V8_SRC
34
+ "${CMAKE_CURRENT_SOURCE_DIR}/src/v8/array.cc"
35
+ "${CMAKE_CURRENT_SOURCE_DIR}/src/v8/external.cc"
36
+ "${CMAKE_CURRENT_SOURCE_DIR}/src/v8/exception.cc"
37
+ "${CMAKE_CURRENT_SOURCE_DIR}/src/v8/date.cc"
38
+ "${CMAKE_CURRENT_SOURCE_DIR}/src/v8/function.cc"
39
+ "${CMAKE_CURRENT_SOURCE_DIR}/src/v8/handle_scope.cc"
40
+ "${CMAKE_CURRENT_SOURCE_DIR}/src/v8/internal.cc"
41
+ "${CMAKE_CURRENT_SOURCE_DIR}/src/v8/isolate.cc"
42
+ "${CMAKE_CURRENT_SOURCE_DIR}/src/v8/json.cc"
43
+ "${CMAKE_CURRENT_SOURCE_DIR}/src/v8/object.cc"
44
+ "${CMAKE_CURRENT_SOURCE_DIR}/src/v8/string.cc"
45
+ "${CMAKE_CURRENT_SOURCE_DIR}/src/v8/value.cc"
46
+ "${CMAKE_CURRENT_SOURCE_DIR}/src/v8/boolean.cc"
47
+ "${CMAKE_CURRENT_SOURCE_DIR}/src/v8/number.cc"
48
+ "${CMAKE_CURRENT_SOURCE_DIR}/src/v8/template.cc"
49
+ "${CMAKE_CURRENT_SOURCE_DIR}/src/v8/try_catch.cc"
50
+ "${CMAKE_CURRENT_SOURCE_DIR}/src/v8/node.cc"
51
+ "${CMAKE_CURRENT_SOURCE_DIR}/src/v8/script.cc"
52
+ )
53
+
32
54
  set(UV_SRC
33
55
  "${CMAKE_CURRENT_SOURCE_DIR}/src/uv/uv-common.c"
34
56
  "${CMAKE_CURRENT_SOURCE_DIR}/src/uv/threadpool.c"
@@ -54,8 +76,10 @@ set(EMNAPI_SRC ${ENAPI_BASIC_SRC} ${EMNAPI_THREADS_SRC})
54
76
 
55
77
  set(EMNAPI_INCLUDE "${CMAKE_CURRENT_SOURCE_DIR}/include/node")
56
78
  set(EMNAPI_DEFINES "BUILDING_NODE_EXTENSION")
79
+ set(V8_DEFINES "V8_ENABLE_DIRECT_LOCAL")
57
80
 
58
81
  set(EMNAPI_JS_LIB "${CMAKE_CURRENT_SOURCE_DIR}/dist/library_napi.js")
82
+ set(V8_JS_LIB "${CMAKE_CURRENT_SOURCE_DIR}/dist/library_v8.js")
59
83
 
60
84
  if(IS_EMSCRIPTEN)
61
85
  set(EMNAPI_MT_CFLAGS "-pthread" "-sWASM_WORKERS=1")
@@ -79,6 +103,8 @@ set(DLMALLOC_TARGET_NAME "dlmalloc")
79
103
  set(DLMALLOC_MT_TARGET_NAME "dlmalloc-mt")
80
104
  set(EMMALLOC_TARGET_NAME "emmalloc")
81
105
  set(EMMALLOC_MT_TARGET_NAME "emmalloc-mt")
106
+ set(V8_TARGET_NAME "v8")
107
+ set(V8_MT_TARGET_NAME "v8-mt")
82
108
 
83
109
  if(EMNAPI_FIND_NODE_ADDON_API)
84
110
  execute_process(
@@ -131,6 +157,22 @@ if(IS_WASM32)
131
157
  target_compile_definitions(${EMMALLOC_MT_TARGET_NAME} PRIVATE "PAGESIZE=65536" "__EMSCRIPTEN_SHARED_MEMORY__=1")
132
158
  endif()
133
159
 
160
+ if(NOT IS_WASM32 AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/include/node/v8.h")
161
+ set(EMNAPI_BUILD_V8 ON)
162
+ else()
163
+ set(EMNAPI_BUILD_V8 OFF)
164
+ endif()
165
+
166
+ if(EMNAPI_BUILD_V8)
167
+ add_library(${V8_TARGET_NAME} STATIC ${V8_SRC})
168
+ target_include_directories(${V8_TARGET_NAME} PUBLIC ${EMNAPI_INCLUDE})
169
+ target_compile_definitions(${V8_TARGET_NAME} PUBLIC ${EMNAPI_DEFINES} ${V8_DEFINES})
170
+ if(IS_EMSCRIPTEN)
171
+ set_target_properties(${V8_TARGET_NAME} PROPERTIES INTERFACE_LINK_DEPENDS ${EMNAPI_JS_LIB})
172
+ target_link_options(${V8_TARGET_NAME} INTERFACE "--js-library=${EMNAPI_JS_LIB}" "--js-library=${V8_JS_LIB}")
173
+ endif()
174
+ endif()
175
+
134
176
  if(NAPI_VERSION)
135
177
  add_compile_definitions("NAPI_VERSION=${NAPI_VERSION}")
136
178
  endif()
@@ -161,20 +203,22 @@ if(IS_EMSCRIPTEN)
161
203
  target_link_options(${EMNAPI_TARGET_NAME} INTERFACE "--js-library=${EMNAPI_JS_LIB}")
162
204
  endif()
163
205
 
164
- add_library(${EMNAPI_BASIC_TARGET_NAME} STATIC ${ENAPI_BASIC_SRC} ${UV_SRC})
165
- target_include_directories(${EMNAPI_BASIC_TARGET_NAME} PUBLIC ${EMNAPI_INCLUDE})
166
- target_compile_definitions(${EMNAPI_BASIC_TARGET_NAME}
167
- PUBLIC ${EMNAPI_DEFINES}
168
- )
169
- if(IS_EMSCRIPTEN)
170
- set_target_properties(${EMNAPI_BASIC_TARGET_NAME} PROPERTIES INTERFACE_LINK_DEPENDS ${EMNAPI_JS_LIB})
171
- target_link_options(${EMNAPI_BASIC_TARGET_NAME} INTERFACE "--js-library=${EMNAPI_JS_LIB}")
172
- endif()
206
+ if(EMNAPI_BUILD_BASIC_LIBS)
207
+ add_library(${EMNAPI_BASIC_TARGET_NAME} STATIC ${ENAPI_BASIC_SRC} ${UV_SRC})
208
+ target_include_directories(${EMNAPI_BASIC_TARGET_NAME} PUBLIC ${EMNAPI_INCLUDE})
209
+ target_compile_definitions(${EMNAPI_BASIC_TARGET_NAME}
210
+ PUBLIC ${EMNAPI_DEFINES}
211
+ )
212
+ if(IS_EMSCRIPTEN)
213
+ set_target_properties(${EMNAPI_BASIC_TARGET_NAME} PROPERTIES INTERFACE_LINK_DEPENDS ${EMNAPI_JS_LIB})
214
+ target_link_options(${EMNAPI_BASIC_TARGET_NAME} INTERFACE "--js-library=${EMNAPI_JS_LIB}")
215
+ endif()
173
216
 
174
- if(IS_WASM32 OR IS_WASM32_WASIP1 OR IS_WASM32_WASIP1_THREADS)
175
- set(EMNAPI_BUILD_BASIC_MT ON)
176
- else()
177
- set(EMNAPI_BUILD_BASIC_MT OFF)
217
+ if(IS_WASM32 OR IS_WASM32_WASIP1 OR IS_WASM32_WASIP1_THREADS)
218
+ set(EMNAPI_BUILD_BASIC_MT ON)
219
+ else()
220
+ set(EMNAPI_BUILD_BASIC_MT OFF)
221
+ endif()
178
222
  endif()
179
223
 
180
224
  if(IS_WASM32_WASIP1_THREADS)
@@ -190,34 +234,38 @@ if(EMNAPI_BUILD_FOR_NAPI_RS)
190
234
  PUBLIC ${EMNAPI_DEFINES} "NAPI_EXTERN=__attribute__((__import_module__(\"env\")))"
191
235
  )
192
236
 
193
- add_library(${EMNAPI_BASIC_NAPI_RS_MT_TARGET_NAME} STATIC
194
- ${ENAPI_BASIC_SRC}
195
- ${UV_SRC}
196
- "${CMAKE_CURRENT_SOURCE_DIR}/src/thread/async_worker_create.c"
197
- "${CMAKE_CURRENT_SOURCE_DIR}/src/thread/async_worker_init.S"
198
- )
199
- target_include_directories(${EMNAPI_BASIC_NAPI_RS_MT_TARGET_NAME} PUBLIC ${EMNAPI_INCLUDE})
200
- target_compile_definitions(${EMNAPI_BASIC_NAPI_RS_MT_TARGET_NAME}
201
- PUBLIC ${EMNAPI_DEFINES} "NAPI_EXTERN=__attribute__((__import_module__(\"env\")))"
202
- )
237
+ if(EMNAPI_BUILD_BASIC_LIBS)
238
+ add_library(${EMNAPI_BASIC_NAPI_RS_MT_TARGET_NAME} STATIC
239
+ ${ENAPI_BASIC_SRC}
240
+ ${UV_SRC}
241
+ "${CMAKE_CURRENT_SOURCE_DIR}/src/thread/async_worker_create.c"
242
+ "${CMAKE_CURRENT_SOURCE_DIR}/src/thread/async_worker_init.S"
243
+ )
244
+ target_include_directories(${EMNAPI_BASIC_NAPI_RS_MT_TARGET_NAME} PUBLIC ${EMNAPI_INCLUDE})
245
+ target_compile_definitions(${EMNAPI_BASIC_NAPI_RS_MT_TARGET_NAME}
246
+ PUBLIC ${EMNAPI_DEFINES} "NAPI_EXTERN=__attribute__((__import_module__(\"env\")))"
247
+ )
248
+ endif()
203
249
  endif()
204
250
 
205
- if(EMNAPI_BUILD_BASIC_MT)
206
- add_library(${EMNAPI_BASIC_MT_TARGET_NAME} STATIC
207
- ${ENAPI_BASIC_SRC}
208
- ${UV_SRC}
209
- "${CMAKE_CURRENT_SOURCE_DIR}/src/thread/async_worker_create.c"
210
- "${CMAKE_CURRENT_SOURCE_DIR}/src/thread/async_worker_init.S"
211
- )
212
- target_compile_options(${EMNAPI_BASIC_MT_TARGET_NAME} PUBLIC "-matomics" "-mbulk-memory")
213
- target_include_directories(${EMNAPI_BASIC_MT_TARGET_NAME} PUBLIC ${EMNAPI_INCLUDE})
214
- target_compile_definitions(${EMNAPI_BASIC_MT_TARGET_NAME}
215
- PUBLIC ${EMNAPI_DEFINES}
216
- )
217
-
218
- if(IS_EMSCRIPTEN)
219
- set_target_properties(${EMNAPI_BASIC_MT_TARGET_NAME} PROPERTIES INTERFACE_LINK_DEPENDS ${EMNAPI_JS_LIB})
220
- target_link_options(${EMNAPI_BASIC_MT_TARGET_NAME} INTERFACE "--js-library=${EMNAPI_JS_LIB}")
251
+ if(EMNAPI_BUILD_BASIC_LIBS)
252
+ if(EMNAPI_BUILD_BASIC_MT)
253
+ add_library(${EMNAPI_BASIC_MT_TARGET_NAME} STATIC
254
+ ${ENAPI_BASIC_SRC}
255
+ ${UV_SRC}
256
+ "${CMAKE_CURRENT_SOURCE_DIR}/src/thread/async_worker_create.c"
257
+ "${CMAKE_CURRENT_SOURCE_DIR}/src/thread/async_worker_init.S"
258
+ )
259
+ target_compile_options(${EMNAPI_BASIC_MT_TARGET_NAME} PUBLIC "-matomics" "-mbulk-memory")
260
+ target_include_directories(${EMNAPI_BASIC_MT_TARGET_NAME} PUBLIC ${EMNAPI_INCLUDE})
261
+ target_compile_definitions(${EMNAPI_BASIC_MT_TARGET_NAME}
262
+ PUBLIC ${EMNAPI_DEFINES}
263
+ )
264
+
265
+ if(IS_EMSCRIPTEN)
266
+ set_target_properties(${EMNAPI_BASIC_MT_TARGET_NAME} PROPERTIES INTERFACE_LINK_DEPENDS ${EMNAPI_JS_LIB})
267
+ target_link_options(${EMNAPI_BASIC_MT_TARGET_NAME} INTERFACE "--js-library=${EMNAPI_JS_LIB}")
268
+ endif()
221
269
  endif()
222
270
  endif()
223
271
 
@@ -239,6 +287,20 @@ if(EMNAPI_BUILD_MT)
239
287
  set_target_properties(${EMNAPI_MT_TARGET_NAME} PROPERTIES INTERFACE_LINK_DEPENDS ${EMNAPI_JS_LIB})
240
288
  target_link_options(${EMNAPI_MT_TARGET_NAME} INTERFACE "--js-library=${EMNAPI_JS_LIB}")
241
289
  endif()
290
+
291
+ if(EMNAPI_BUILD_V8)
292
+ add_library(${V8_MT_TARGET_NAME} STATIC ${V8_SRC})
293
+ target_compile_options(${V8_MT_TARGET_NAME}
294
+ PUBLIC "-matomics" "-mbulk-memory"
295
+ PRIVATE ${EMNAPI_MT_CFLAGS}
296
+ )
297
+ target_include_directories(${V8_MT_TARGET_NAME} PUBLIC ${EMNAPI_INCLUDE})
298
+ target_compile_definitions(${V8_MT_TARGET_NAME} PUBLIC ${EMNAPI_DEFINES} ${V8_DEFINES})
299
+ if(IS_EMSCRIPTEN)
300
+ set_target_properties(${V8_MT_TARGET_NAME} PROPERTIES INTERFACE_LINK_DEPENDS ${EMNAPI_JS_LIB})
301
+ target_link_options(${V8_MT_TARGET_NAME} INTERFACE "--js-library=${EMNAPI_JS_LIB}" "--js-library=${V8_JS_LIB}")
302
+ endif()
303
+ endif()
242
304
  endif()
243
305
 
244
306
  if(IS_EMSCRIPTEN)
@@ -253,16 +315,29 @@ endif()
253
315
  # endif()
254
316
  if(LIB_ARCH)
255
317
  install(TARGETS ${EMNAPI_TARGET_NAME} DESTINATION "lib/${LIB_ARCH}")
256
- install(TARGETS ${EMNAPI_BASIC_TARGET_NAME} DESTINATION "lib/${LIB_ARCH}")
318
+ # install(TARGETS ${EMNAPI_BASIC_TARGET_NAME} DESTINATION "lib/${LIB_ARCH}")
319
+ if(EMNAPI_BUILD_V8)
320
+ install(TARGETS ${V8_TARGET_NAME} DESTINATION "lib/${LIB_ARCH}")
321
+ endif()
257
322
  if(EMNAPI_BUILD_MT)
258
323
  install(TARGETS ${EMNAPI_MT_TARGET_NAME} DESTINATION "lib/${LIB_ARCH}")
324
+ if(EMNAPI_BUILD_V8)
325
+ install(TARGETS ${V8_MT_TARGET_NAME} DESTINATION "lib/${LIB_ARCH}")
326
+ endif()
259
327
  endif()
260
- if(EMNAPI_BUILD_BASIC_MT)
261
- install(TARGETS ${EMNAPI_BASIC_MT_TARGET_NAME} DESTINATION "lib/${LIB_ARCH}")
328
+
329
+ if(EMNAPI_BUILD_BASIC_LIBS)
330
+ install(TARGETS ${EMNAPI_BASIC_TARGET_NAME} DESTINATION "lib/${LIB_ARCH}")
331
+ if(EMNAPI_BUILD_BASIC_MT)
332
+ install(TARGETS ${EMNAPI_BASIC_MT_TARGET_NAME} DESTINATION "lib/${LIB_ARCH}")
333
+ endif()
262
334
  endif()
335
+
263
336
  if(EMNAPI_BUILD_FOR_NAPI_RS)
264
337
  install(TARGETS ${EMNAPI_NAPI_RS_MT_TARGET_NAME} DESTINATION "lib/${LIB_ARCH}")
265
- install(TARGETS ${EMNAPI_BASIC_NAPI_RS_MT_TARGET_NAME} DESTINATION "lib/${LIB_ARCH}")
338
+ if(EMNAPI_BUILD_BASIC_LIBS)
339
+ install(TARGETS ${EMNAPI_BASIC_NAPI_RS_MT_TARGET_NAME} DESTINATION "lib/${LIB_ARCH}")
340
+ endif()
266
341
  endif()
267
342
  if(IS_WASM32)
268
343
  install(TARGETS ${DLMALLOC_TARGET_NAME} DESTINATION "lib/${LIB_ARCH}")
@@ -277,23 +352,15 @@ install(FILES
277
352
  ${CMAKE_CURRENT_SOURCE_DIR}/emnapi.gyp
278
353
  DESTINATION ".")
279
354
 
280
- install(FILES
281
- ${CMAKE_CURRENT_SOURCE_DIR}/include/node/emnapi_common.h
282
- ${CMAKE_CURRENT_SOURCE_DIR}/include/node/emnapi.h
283
- ${CMAKE_CURRENT_SOURCE_DIR}/include/node/js_native_api_types.h
284
- ${CMAKE_CURRENT_SOURCE_DIR}/include/node/js_native_api.h
285
- ${CMAKE_CURRENT_SOURCE_DIR}/include/node/node_api_types.h
286
- ${CMAKE_CURRENT_SOURCE_DIR}/include/node/node_api.h
287
- ${CMAKE_CURRENT_SOURCE_DIR}/include/node/uv.h
288
- ${CMAKE_CURRENT_SOURCE_DIR}/include/node/config.gypi
289
- DESTINATION "include/node")
290
-
291
355
  install(DIRECTORY
292
- ${CMAKE_CURRENT_SOURCE_DIR}/include/node/uv
293
- DESTINATION "include/node")
356
+ ${CMAKE_CURRENT_SOURCE_DIR}/include/node
357
+ DESTINATION "include")
294
358
 
295
359
  install(FILES
296
360
  ${CMAKE_CURRENT_SOURCE_DIR}/dist/library_napi.js
361
+ ${CMAKE_CURRENT_SOURCE_DIR}/dist/library_v8.js
362
+ ${CMAKE_CURRENT_SOURCE_DIR}/dist/library_async_work.js
363
+ ${CMAKE_CURRENT_SOURCE_DIR}/dist/library_threadsafe_function.js
297
364
  DESTINATION "dist")
298
365
 
299
366
  if(EMNAPI_INSTALL_SRC)
@@ -310,4 +377,7 @@ if(EMNAPI_INSTALL_SRC)
310
377
  install(DIRECTORY
311
378
  ${CMAKE_CURRENT_SOURCE_DIR}/src/thread
312
379
  DESTINATION "src")
380
+ install(DIRECTORY
381
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/v8
382
+ DESTINATION "src")
313
383
  endif()