koffi 2.16.0-beta.2 → 2.16.0
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.
- package/CHANGELOG.md +59 -0
- package/build/koffi/darwin_arm64/koffi.node +0 -0
- package/build/koffi/darwin_x64/koffi.node +0 -0
- package/build/koffi/freebsd_arm64/koffi.node +0 -0
- package/build/koffi/freebsd_ia32/koffi.node +0 -0
- package/build/koffi/freebsd_x64/koffi.node +0 -0
- package/build/koffi/linux_arm64/koffi.node +0 -0
- package/build/koffi/linux_armhf/koffi.node +0 -0
- package/build/koffi/linux_ia32/koffi.node +0 -0
- package/build/koffi/linux_loong64/koffi.node +0 -0
- package/build/koffi/linux_riscv64d/koffi.node +0 -0
- package/build/koffi/linux_x64/koffi.node +0 -0
- package/build/koffi/musl_arm64/koffi.node +0 -0
- package/build/koffi/musl_x64/koffi.node +0 -0
- package/build/koffi/openbsd_ia32/koffi.node +0 -0
- package/build/koffi/openbsd_x64/koffi.node +0 -0
- package/build/koffi/win32_arm64/koffi.exp +0 -0
- package/build/koffi/win32_arm64/koffi.lib +0 -0
- package/build/koffi/win32_arm64/koffi.node +0 -0
- package/build/koffi/win32_ia32/koffi.exp +0 -0
- package/build/koffi/win32_ia32/koffi.lib +0 -0
- package/build/koffi/win32_ia32/koffi.node +0 -0
- package/build/koffi/win32_x64/koffi.exp +0 -0
- package/build/koffi/win32_x64/koffi.lib +0 -0
- package/build/koffi/win32_x64/koffi.node +0 -0
- package/index.d.ts +9 -11
- package/index.js +6 -9
- package/indirect.js +6 -9
- package/lib/native/base/base.cc +1 -6
- package/package.json +3 -3
- package/src/cnoke/assets/FindCNoke.cmake +27 -16
- package/src/cnoke/assets/toolchains.json +126 -0
- package/src/cnoke/cnoke.js +27 -33
- package/src/cnoke/src/builder.js +124 -63
- package/src/cnoke/src/tools.js +1 -5
- package/src/koffi/CMakeLists.txt +32 -21
- package/src/koffi/src/{abi/arm32.cc → abi_arm32.cc} +235 -238
- package/src/koffi/src/{abi/arm32_asm.S → abi_arm32_asm.S} +19 -15
- package/src/koffi/src/{abi/arm64.cc → abi_arm64.cc} +253 -274
- package/src/koffi/src/{abi/arm64_asm.S → abi_arm64_asm.S} +16 -10
- package/src/koffi/src/{abi/arm64_asm.asm → abi_arm64_asm.asm} +17 -10
- package/src/koffi/src/{abi/loong64_asm.S → abi_loong64_asm.S} +16 -10
- package/src/koffi/src/{abi/riscv64.cc → abi_riscv64.cc} +233 -236
- package/src/koffi/src/{abi/riscv64_asm.S → abi_riscv64_asm.S} +16 -10
- package/src/koffi/src/{abi/x64_sysv.cc → abi_x64_sysv.cc} +208 -212
- package/src/koffi/src/{abi/x64_sysv_asm.S → abi_x64_sysv_asm.S} +17 -10
- package/src/koffi/src/{abi/x64_win.cc → abi_x64_win.cc} +175 -206
- package/src/koffi/src/{abi/x64_win_asm.S → abi_x64_win_asm.S} +49 -27
- package/src/koffi/src/{abi/x64_win_asm.asm → abi_x64_win_asm.asm} +54 -27
- package/src/koffi/src/{abi/x86.cc → abi_x86.cc} +187 -226
- package/src/koffi/src/{abi/x86_asm.S → abi_x86_asm.S} +36 -21
- package/src/koffi/src/{abi/x86_asm.asm → abi_x86_asm.asm} +31 -16
- package/src/koffi/src/call.cc +473 -287
- package/src/koffi/src/call.hh +15 -18
- package/src/koffi/src/ffi.cc +167 -183
- package/src/koffi/src/ffi.hh +59 -13
- package/src/koffi/src/init.js +1 -0
- package/src/koffi/src/util.cc +113 -159
- package/src/koffi/src/util.hh +23 -74
- package/src/koffi/src/win32.cc +13 -0
- package/src/koffi/src/win32.hh +7 -0
- package/src/koffi/tools/write_trampolines.js +77 -0
- package/doc/README.md +0 -27
- package/doc/assets.ini +0 -24
- package/doc/build.sh +0 -9
- package/doc/develop.sh +0 -15
- package/doc/pages/404.md +0 -17
- package/doc/pages.ini +0 -86
- package/doc/static/highlight.js +0 -8
- package/doc/static/koffi.css +0 -11
- package/doc/static/koffi.png +0 -0
- package/doc/static/logo.webp +0 -0
- package/doc/static/perf_linux.png +0 -0
- package/doc/static/perf_windows.png +0 -0
- package/doc/static/print.css +0 -10
- package/doc/templates/code.html +0 -48
- package/doc/templates/page.html +0 -47
- package/src/koffi/cmake/raylib.cmake +0 -85
- package/src/koffi/cmake/sqlite3.cmake +0 -9
- package/src/koffi/examples/electron-builder/README.md +0 -11
- package/src/koffi/examples/electron-builder/package.json +0 -21
- package/src/koffi/examples/electron-builder/src/app.js +0 -20
- package/src/koffi/examples/electron-builder/src/index.html +0 -143
- package/src/koffi/examples/electron-builder/src/preload.js +0 -5
- package/src/koffi/examples/electron-forge/README.md +0 -25
- package/src/koffi/examples/electron-forge/forge.config.js +0 -63
- package/src/koffi/examples/electron-forge/package.json +0 -39
- package/src/koffi/examples/electron-forge/src/index.css +0 -7
- package/src/koffi/examples/electron-forge/src/index.html +0 -143
- package/src/koffi/examples/electron-forge/src/main.js +0 -52
- package/src/koffi/examples/electron-forge/src/preload.js +0 -5
- package/src/koffi/examples/electron-forge/src/renderer.js +0 -31
- package/src/koffi/examples/electron-forge/webpack.main.config.js +0 -11
- package/src/koffi/examples/electron-forge/webpack.renderer.config.js +0 -13
- package/src/koffi/examples/electron-forge/webpack.rules.js +0 -35
- package/src/koffi/examples/node-esbuild/README.md +0 -19
- package/src/koffi/examples/node-esbuild/index.js +0 -2
- package/src/koffi/examples/node-esbuild/package.json +0 -16
- package/src/koffi/examples/nwjs/README.md +0 -20
- package/src/koffi/examples/nwjs/package.json +0 -11
- package/src/koffi/examples/nwjs/src/index.html +0 -145
- package/src/koffi/examples/nwjs/src/package.json +0 -10
- package/src/koffi/examples/yao-pkg/README.md +0 -17
- package/src/koffi/examples/yao-pkg/index.js +0 -2
- package/src/koffi/examples/yao-pkg/package.json +0 -22
- package/src/koffi/src/primitives.inc +0 -39
- package/src/koffi/src/trampolines/armasm.inc +0 -32771
- package/src/koffi/src/trampolines/gnu.inc +0 -24577
- package/src/koffi/src/trampolines/masm32.inc +0 -32769
- package/src/koffi/src/trampolines/masm64.inc +0 -32769
- package/src/koffi/src/trampolines/prototypes.inc +0 -16388
- package/vendor/node-addon-api/CHANGELOG.md +0 -1272
- package/vendor/node-addon-api/CODE_OF_CONDUCT.md +0 -4
- package/vendor/node-addon-api/CONTRIBUTING.md +0 -203
- package/vendor/node-addon-api/appveyor.yml +0 -37
- package/vendor/node-addon-api/benchmark/README.md +0 -47
- package/vendor/node-addon-api/benchmark/binding.gyp +0 -25
- package/vendor/node-addon-api/benchmark/function_args.cc +0 -250
- package/vendor/node-addon-api/benchmark/function_args.js +0 -60
- package/vendor/node-addon-api/benchmark/index.js +0 -34
- package/vendor/node-addon-api/benchmark/property_descriptor.cc +0 -84
- package/vendor/node-addon-api/benchmark/property_descriptor.js +0 -38
- package/vendor/node-addon-api/common.gypi +0 -21
- package/vendor/node-addon-api/doc/README.md +0 -145
- package/vendor/node-addon-api/doc/addon.md +0 -163
- package/vendor/node-addon-api/doc/array.md +0 -81
- package/vendor/node-addon-api/doc/array_buffer.md +0 -165
- package/vendor/node-addon-api/doc/async_context.md +0 -86
- package/vendor/node-addon-api/doc/async_operations.md +0 -31
- package/vendor/node-addon-api/doc/async_worker.md +0 -428
- package/vendor/node-addon-api/doc/async_worker_variants.md +0 -578
- package/vendor/node-addon-api/doc/basic_env.md +0 -200
- package/vendor/node-addon-api/doc/bigint.md +0 -97
- package/vendor/node-addon-api/doc/boolean.md +0 -68
- package/vendor/node-addon-api/doc/buffer.md +0 -245
- package/vendor/node-addon-api/doc/callback_scope.md +0 -54
- package/vendor/node-addon-api/doc/callbackinfo.md +0 -97
- package/vendor/node-addon-api/doc/checker-tool.md +0 -32
- package/vendor/node-addon-api/doc/class_property_descriptor.md +0 -123
- package/vendor/node-addon-api/doc/cmake-js.md +0 -87
- package/vendor/node-addon-api/doc/contributing/creating_a_release.md +0 -95
- package/vendor/node-addon-api/doc/conversion-tool.md +0 -28
- package/vendor/node-addon-api/doc/dataview.md +0 -248
- package/vendor/node-addon-api/doc/date.md +0 -68
- package/vendor/node-addon-api/doc/env.md +0 -87
- package/vendor/node-addon-api/doc/error.md +0 -120
- package/vendor/node-addon-api/doc/error_handling.md +0 -266
- package/vendor/node-addon-api/doc/escapable_handle_scope.md +0 -80
- package/vendor/node-addon-api/doc/external.md +0 -79
- package/vendor/node-addon-api/doc/external_buffer.md +0 -18
- package/vendor/node-addon-api/doc/finalization.md +0 -153
- package/vendor/node-addon-api/doc/function.md +0 -402
- package/vendor/node-addon-api/doc/function_reference.md +0 -238
- package/vendor/node-addon-api/doc/generator.md +0 -13
- package/vendor/node-addon-api/doc/handle_scope.md +0 -77
- package/vendor/node-addon-api/doc/hierarchy.md +0 -95
- package/vendor/node-addon-api/doc/instance_wrap.md +0 -408
- package/vendor/node-addon-api/doc/maybe.md +0 -76
- package/vendor/node-addon-api/doc/memory_management.md +0 -27
- package/vendor/node-addon-api/doc/name.md +0 -29
- package/vendor/node-addon-api/doc/node-gyp.md +0 -82
- package/vendor/node-addon-api/doc/number.md +0 -163
- package/vendor/node-addon-api/doc/object.md +0 -411
- package/vendor/node-addon-api/doc/object_lifetime_management.md +0 -83
- package/vendor/node-addon-api/doc/object_reference.md +0 -117
- package/vendor/node-addon-api/doc/object_wrap.md +0 -604
- package/vendor/node-addon-api/doc/prebuild_tools.md +0 -16
- package/vendor/node-addon-api/doc/promises.md +0 -130
- package/vendor/node-addon-api/doc/property_descriptor.md +0 -286
- package/vendor/node-addon-api/doc/propertylvalue.md +0 -50
- package/vendor/node-addon-api/doc/range_error.md +0 -59
- package/vendor/node-addon-api/doc/reference.md +0 -113
- package/vendor/node-addon-api/doc/setup.md +0 -115
- package/vendor/node-addon-api/doc/string.md +0 -93
- package/vendor/node-addon-api/doc/symbol.md +0 -61
- package/vendor/node-addon-api/doc/syntax_error.md +0 -66
- package/vendor/node-addon-api/doc/threadsafe.md +0 -121
- package/vendor/node-addon-api/doc/threadsafe_function.md +0 -290
- package/vendor/node-addon-api/doc/type_error.md +0 -59
- package/vendor/node-addon-api/doc/type_taggable.md +0 -40
- package/vendor/node-addon-api/doc/typed_array.md +0 -78
- package/vendor/node-addon-api/doc/typed_array_of.md +0 -137
- package/vendor/node-addon-api/doc/typed_threadsafe_function.md +0 -306
- package/vendor/node-addon-api/doc/value.md +0 -368
- package/vendor/node-addon-api/doc/version_management.md +0 -43
- package/vendor/node-addon-api/eslint.config.js +0 -5
- package/vendor/node-addon-api/except.gypi +0 -25
- package/vendor/node-addon-api/index.js +0 -14
- package/vendor/node-addon-api/node_addon_api.gyp +0 -42
- package/vendor/node-addon-api/node_api.gyp +0 -9
- package/vendor/node-addon-api/noexcept.gypi +0 -26
- package/vendor/node-addon-api/nothing.c +0 -0
- package/vendor/node-addon-api/package-support.json +0 -21
- package/vendor/node-addon-api/package.json +0 -480
- package/vendor/node-addon-api/release-please-config.json +0 -15
- package/vendor/node-addon-api/test/README.md +0 -91
- package/vendor/node-addon-api/test/addon.cc +0 -44
- package/vendor/node-addon-api/test/addon.js +0 -7
- package/vendor/node-addon-api/test/addon_build/index.js +0 -49
- package/vendor/node-addon-api/test/addon_build/tpl/addon.cc +0 -18
- package/vendor/node-addon-api/test/addon_build/tpl/binding.gyp +0 -63
- package/vendor/node-addon-api/test/addon_build/tpl/index.js +0 -9
- package/vendor/node-addon-api/test/addon_build/tpl/package.json +0 -11
- package/vendor/node-addon-api/test/addon_data.cc +0 -98
- package/vendor/node-addon-api/test/addon_data.js +0 -24
- package/vendor/node-addon-api/test/array_buffer.cc +0 -243
- package/vendor/node-addon-api/test/array_buffer.js +0 -70
- package/vendor/node-addon-api/test/async_context.cc +0 -36
- package/vendor/node-addon-api/test/async_context.js +0 -122
- package/vendor/node-addon-api/test/async_progress_queue_worker.cc +0 -248
- package/vendor/node-addon-api/test/async_progress_queue_worker.js +0 -180
- package/vendor/node-addon-api/test/async_progress_worker.cc +0 -357
- package/vendor/node-addon-api/test/async_progress_worker.js +0 -200
- package/vendor/node-addon-api/test/async_worker.cc +0 -341
- package/vendor/node-addon-api/test/async_worker.js +0 -264
- package/vendor/node-addon-api/test/async_worker_nocallback.js +0 -19
- package/vendor/node-addon-api/test/async_worker_persistent.cc +0 -63
- package/vendor/node-addon-api/test/async_worker_persistent.js +0 -24
- package/vendor/node-addon-api/test/basic_types/array.cc +0 -40
- package/vendor/node-addon-api/test/basic_types/array.js +0 -34
- package/vendor/node-addon-api/test/basic_types/boolean.cc +0 -40
- package/vendor/node-addon-api/test/basic_types/boolean.js +0 -34
- package/vendor/node-addon-api/test/basic_types/number.cc +0 -105
- package/vendor/node-addon-api/test/basic_types/number.js +0 -115
- package/vendor/node-addon-api/test/basic_types/value.cc +0 -177
- package/vendor/node-addon-api/test/basic_types/value.js +0 -173
- package/vendor/node-addon-api/test/bigint.cc +0 -91
- package/vendor/node-addon-api/test/bigint.js +0 -53
- package/vendor/node-addon-api/test/binding-swallowexcept.cc +0 -12
- package/vendor/node-addon-api/test/binding.cc +0 -200
- package/vendor/node-addon-api/test/binding.gyp +0 -160
- package/vendor/node-addon-api/test/buffer.cc +0 -185
- package/vendor/node-addon-api/test/buffer.h +0 -26
- package/vendor/node-addon-api/test/buffer.js +0 -150
- package/vendor/node-addon-api/test/buffer_new_or_copy-inl.h +0 -68
- package/vendor/node-addon-api/test/buffer_no_external.cc +0 -24
- package/vendor/node-addon-api/test/callbackInfo.cc +0 -27
- package/vendor/node-addon-api/test/callbackInfo.js +0 -9
- package/vendor/node-addon-api/test/callbackscope.cc +0 -39
- package/vendor/node-addon-api/test/callbackscope.js +0 -49
- package/vendor/node-addon-api/test/child_processes/addon.js +0 -11
- package/vendor/node-addon-api/test/child_processes/addon_data.js +0 -24
- package/vendor/node-addon-api/test/child_processes/objectwrap_function.js +0 -22
- package/vendor/node-addon-api/test/child_processes/threadsafe_function_exception.js +0 -33
- package/vendor/node-addon-api/test/child_processes/typed_threadsafe_function_exception.js +0 -19
- package/vendor/node-addon-api/test/common/index.js +0 -246
- package/vendor/node-addon-api/test/common/test_helper.h +0 -71
- package/vendor/node-addon-api/test/dataview/dataview.cc +0 -48
- package/vendor/node-addon-api/test/dataview/dataview.js +0 -35
- package/vendor/node-addon-api/test/dataview/dataview_read_write.cc +0 -115
- package/vendor/node-addon-api/test/dataview/dataview_read_write.js +0 -92
- package/vendor/node-addon-api/test/date.cc +0 -45
- package/vendor/node-addon-api/test/date.js +0 -18
- package/vendor/node-addon-api/test/env_cleanup.cc +0 -100
- package/vendor/node-addon-api/test/env_cleanup.js +0 -55
- package/vendor/node-addon-api/test/env_misc.cc +0 -25
- package/vendor/node-addon-api/test/env_misc.js +0 -12
- package/vendor/node-addon-api/test/error.cc +0 -436
- package/vendor/node-addon-api/test/error.js +0 -111
- package/vendor/node-addon-api/test/error_handling_for_primitives.cc +0 -13
- package/vendor/node-addon-api/test/error_handling_for_primitives.js +0 -29
- package/vendor/node-addon-api/test/error_terminating_environment.js +0 -99
- package/vendor/node-addon-api/test/except_all.cc +0 -22
- package/vendor/node-addon-api/test/except_all.js +0 -14
- package/vendor/node-addon-api/test/exports.js +0 -19
- package/vendor/node-addon-api/test/external.cc +0 -85
- package/vendor/node-addon-api/test/external.js +0 -85
- package/vendor/node-addon-api/test/finalizer_order.cc +0 -152
- package/vendor/node-addon-api/test/finalizer_order.js +0 -98
- package/vendor/node-addon-api/test/function.cc +0 -338
- package/vendor/node-addon-api/test/function.js +0 -137
- package/vendor/node-addon-api/test/function_reference.cc +0 -204
- package/vendor/node-addon-api/test/function_reference.js +0 -157
- package/vendor/node-addon-api/test/globalObject/global_object.cc +0 -61
- package/vendor/node-addon-api/test/globalObject/global_object_delete_property.cc +0 -31
- package/vendor/node-addon-api/test/globalObject/global_object_delete_property.js +0 -58
- package/vendor/node-addon-api/test/globalObject/global_object_get_property.cc +0 -40
- package/vendor/node-addon-api/test/globalObject/global_object_get_property.js +0 -56
- package/vendor/node-addon-api/test/globalObject/global_object_has_own_property.cc +0 -28
- package/vendor/node-addon-api/test/globalObject/global_object_has_own_property.js +0 -46
- package/vendor/node-addon-api/test/globalObject/global_object_set_property.cc +0 -31
- package/vendor/node-addon-api/test/globalObject/global_object_set_property.js +0 -56
- package/vendor/node-addon-api/test/handlescope.cc +0 -86
- package/vendor/node-addon-api/test/handlescope.js +0 -16
- package/vendor/node-addon-api/test/index.js +0 -160
- package/vendor/node-addon-api/test/maybe/check.cc +0 -69
- package/vendor/node-addon-api/test/maybe/index.js +0 -50
- package/vendor/node-addon-api/test/memory_management.cc +0 -18
- package/vendor/node-addon-api/test/memory_management.js +0 -9
- package/vendor/node-addon-api/test/movable_callbacks.cc +0 -23
- package/vendor/node-addon-api/test/movable_callbacks.js +0 -21
- package/vendor/node-addon-api/test/name.cc +0 -110
- package/vendor/node-addon-api/test/name.js +0 -59
- package/vendor/node-addon-api/test/napi_child.js +0 -14
- package/vendor/node-addon-api/test/object/delete_property.cc +0 -38
- package/vendor/node-addon-api/test/object/delete_property.js +0 -41
- package/vendor/node-addon-api/test/object/finalizer.cc +0 -30
- package/vendor/node-addon-api/test/object/finalizer.js +0 -28
- package/vendor/node-addon-api/test/object/get_property.cc +0 -34
- package/vendor/node-addon-api/test/object/get_property.js +0 -40
- package/vendor/node-addon-api/test/object/has_own_property.cc +0 -34
- package/vendor/node-addon-api/test/object/has_own_property.js +0 -34
- package/vendor/node-addon-api/test/object/has_property.cc +0 -38
- package/vendor/node-addon-api/test/object/has_property.js +0 -37
- package/vendor/node-addon-api/test/object/object.cc +0 -430
- package/vendor/node-addon-api/test/object/object.js +0 -218
- package/vendor/node-addon-api/test/object/object_deprecated.cc +0 -70
- package/vendor/node-addon-api/test/object/object_deprecated.js +0 -42
- package/vendor/node-addon-api/test/object/object_freeze_seal.cc +0 -25
- package/vendor/node-addon-api/test/object/object_freeze_seal.js +0 -61
- package/vendor/node-addon-api/test/object/set_property.cc +0 -45
- package/vendor/node-addon-api/test/object/set_property.js +0 -30
- package/vendor/node-addon-api/test/object/subscript_operator.cc +0 -58
- package/vendor/node-addon-api/test/object/subscript_operator.js +0 -17
- package/vendor/node-addon-api/test/object_reference.cc +0 -417
- package/vendor/node-addon-api/test/object_reference.js +0 -262
- package/vendor/node-addon-api/test/objectwrap.cc +0 -295
- package/vendor/node-addon-api/test/objectwrap.js +0 -309
- package/vendor/node-addon-api/test/objectwrap_constructor_exception.cc +0 -26
- package/vendor/node-addon-api/test/objectwrap_constructor_exception.js +0 -18
- package/vendor/node-addon-api/test/objectwrap_function.cc +0 -43
- package/vendor/node-addon-api/test/objectwrap_function.js +0 -6
- package/vendor/node-addon-api/test/objectwrap_multiple_inheritance.cc +0 -30
- package/vendor/node-addon-api/test/objectwrap_multiple_inheritance.js +0 -13
- package/vendor/node-addon-api/test/objectwrap_removewrap.cc +0 -45
- package/vendor/node-addon-api/test/objectwrap_removewrap.js +0 -32
- package/vendor/node-addon-api/test/objectwrap_worker_thread.js +0 -20
- package/vendor/node-addon-api/test/promise.cc +0 -111
- package/vendor/node-addon-api/test/promise.js +0 -43
- package/vendor/node-addon-api/test/reference.cc +0 -78
- package/vendor/node-addon-api/test/reference.js +0 -20
- package/vendor/node-addon-api/test/require_basic_finalizers/index.js +0 -38
- package/vendor/node-addon-api/test/require_basic_finalizers/tpl/addon.cc +0 -12
- package/vendor/node-addon-api/test/require_basic_finalizers/tpl/binding.gyp +0 -48
- package/vendor/node-addon-api/test/require_basic_finalizers/tpl/index.js +0 -3
- package/vendor/node-addon-api/test/require_basic_finalizers/tpl/package.json +0 -11
- package/vendor/node-addon-api/test/run_script.cc +0 -56
- package/vendor/node-addon-api/test/run_script.js +0 -45
- package/vendor/node-addon-api/test/symbol.cc +0 -79
- package/vendor/node-addon-api/test/symbol.js +0 -66
- package/vendor/node-addon-api/test/testUtil.js +0 -54
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function.cc +0 -230
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function.js +0 -225
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_ctx.cc +0 -155
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_ctx.js +0 -13
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_exception.cc +0 -50
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_exception.js +0 -20
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_existing_tsfn.cc +0 -125
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_existing_tsfn.js +0 -14
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_ptr.cc +0 -27
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_ptr.js +0 -7
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_sum.cc +0 -240
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_sum.js +0 -59
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_unref.cc +0 -55
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_unref.js +0 -98
- package/vendor/node-addon-api/test/thunking_manual.cc +0 -127
- package/vendor/node-addon-api/test/thunking_manual.js +0 -16
- package/vendor/node-addon-api/test/type_taggable.cc +0 -66
- package/vendor/node-addon-api/test/type_taggable.js +0 -59
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function.cc +0 -215
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function.js +0 -188
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_ctx.cc +0 -120
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_ctx.js +0 -14
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_exception.cc +0 -39
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_exception.js +0 -13
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_existing_tsfn.cc +0 -127
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_existing_tsfn.js +0 -14
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_ptr.cc +0 -32
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_ptr.js +0 -8
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_sum.cc +0 -237
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_sum.js +0 -59
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_unref.cc +0 -67
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_unref.js +0 -98
- package/vendor/node-addon-api/test/typedarray-bigint.js +0 -58
- package/vendor/node-addon-api/test/typedarray.cc +0 -413
- package/vendor/node-addon-api/test/typedarray.js +0 -103
- package/vendor/node-addon-api/test/value_type_cast.cc +0 -60
- package/vendor/node-addon-api/test/value_type_cast.js +0 -106
- package/vendor/node-addon-api/test/version_management.cc +0 -28
- package/vendor/node-addon-api/test/version_management.js +0 -29
- package/vendor/node-addon-api/tools/README.md +0 -73
- package/vendor/node-addon-api/tools/check-napi.js +0 -99
- package/vendor/node-addon-api/tools/clang-format.js +0 -71
- package/vendor/node-addon-api/tools/conversion.js +0 -301
- package/vendor/node-addon-api/unit-test/README.md +0 -28
- package/vendor/node-addon-api/unit-test/binding-file-template.js +0 -39
- package/vendor/node-addon-api/unit-test/binding.gyp +0 -72
- package/vendor/node-addon-api/unit-test/exceptions.js +0 -32
- package/vendor/node-addon-api/unit-test/generate-binding-cc.js +0 -61
- package/vendor/node-addon-api/unit-test/injectTestParams.js +0 -101
- package/vendor/node-addon-api/unit-test/listOfTestModules.js +0 -88
- package/vendor/node-addon-api/unit-test/matchModules.js +0 -65
- package/vendor/node-addon-api/unit-test/setup.js +0 -13
- package/vendor/node-addon-api/unit-test/spawnTask.js +0 -26
- package/vendor/node-addon-api/unit-test/test.js +0 -30
- package/vendor/node-api-headers/CHANGELOG.md +0 -130
- package/vendor/node-api-headers/CODE_OF_CONDUCT.md +0 -4
- package/vendor/node-api-headers/CONTRIBUTING.md +0 -32
- package/vendor/node-api-headers/CREATING_A_RELEASE.md +0 -68
- package/vendor/node-api-headers/index.js +0 -17
- package/vendor/node-api-headers/lib/clang-utils.js +0 -50
- package/vendor/node-api-headers/lib/parse-utils.js +0 -92
- package/vendor/node-api-headers/package.json +0 -59
- package/vendor/node-api-headers/release-please-config.json +0 -12
- package/vendor/node-api-headers/scripts/update-headers.js +0 -246
- package/vendor/node-api-headers/scripts/write-symbols.js +0 -154
- package/vendor/node-api-headers/scripts/write-win32-def.js +0 -52
- package/vendor/node-api-headers/symbols.js +0 -257
- package/vendor/node-api-headers/test/parse-utils.js +0 -21
- /package/doc/{pages/benchmarks.md → benchmarks.md} +0 -0
- /package/doc/{pages/callbacks.md → callbacks.md} +0 -0
- /package/doc/{pages/contribute.md → contribute.md} +0 -0
- /package/doc/{pages/functions.md → functions.md} +0 -0
- /package/doc/{pages/index.md → index.md} +0 -0
- /package/doc/{pages/input.md → input.md} +0 -0
- /package/doc/{pages/migration.md → migration.md} +0 -0
- /package/doc/{pages/misc.md → misc.md} +0 -0
- /package/doc/{pages/output.md → output.md} +0 -0
- /package/doc/{pages/packaging.md → packaging.md} +0 -0
- /package/doc/{pages/platforms.md → platforms.md} +0 -0
- /package/doc/{pages/pointers.md → pointers.md} +0 -0
- /package/doc/{pages/start.md → start.md} +0 -0
- /package/doc/{pages/unions.md → unions.md} +0 -0
- /package/doc/{pages/variables.md → variables.md} +0 -0
- /package/src/koffi/src/{abi/loong64.cc → abi_loong64.cc} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -5,8 +5,67 @@
|
|
|
5
5
|
|
|
6
6
|
## Koffi 2
|
|
7
7
|
|
|
8
|
+
### Koffi 2.16
|
|
9
|
+
|
|
10
|
+
#### Koffi 2.16.0
|
|
11
|
+
|
|
12
|
+
*Released on 2026-04-14*
|
|
13
|
+
|
|
14
|
+
- Support buffers and typed arrays in `koffi.address()`
|
|
15
|
+
- Put x86 SEH record at the top of stack frame
|
|
16
|
+
- Optimize Koffi binaries produced by GCC (with `-fno-semantic-interposition`)
|
|
17
|
+
- Fix nonsensical addresses in Koffi call dumps (when using DUMP_CALLS=1 environement variable)
|
|
18
|
+
|
|
19
|
+
- Reduce Koffi package size even more:
|
|
20
|
+
* Replace table of callback trampoline pointers with simple offset computation
|
|
21
|
+
* Strip out unused data and functions from Koffi binaries
|
|
22
|
+
* Generate repeated trampoline source and macros at build time
|
|
23
|
+
* Remove files not needed to build from source: tests, scripts, etc.
|
|
24
|
+
* Maximize NPM tarball compression with Zopfli
|
|
25
|
+
- This reduces decompressed Koffi package size from 41.4 MB to 28.7 MB
|
|
26
|
+
|
|
8
27
|
### Koffi 2.15
|
|
9
28
|
|
|
29
|
+
#### Koffi 2.15.6
|
|
30
|
+
|
|
31
|
+
*Released on 2026-04-07*
|
|
32
|
+
|
|
33
|
+
- Fix possible exit crash after using `koffi.reset()` (regression introduced in Koffi 2.15.2)
|
|
34
|
+
|
|
35
|
+
#### Koffi 2.15.5
|
|
36
|
+
|
|
37
|
+
*Released on 2026-04-05*
|
|
38
|
+
|
|
39
|
+
- Reduce repeated trampoline code size:
|
|
40
|
+
* Use single set of trampolines to forward general and floating-point values
|
|
41
|
+
* Minimize trampoline size by jumping early to common handling code
|
|
42
|
+
- This reduces decompressed Koffi package size from 85.9 MB to 41.4 MB
|
|
43
|
+
|
|
44
|
+
#### Koffi 2.15.4
|
|
45
|
+
|
|
46
|
+
*Released on 2026-04-03*
|
|
47
|
+
|
|
48
|
+
- Fix ABI issue with variadic parameters that are passed on the stack on Apple ARM64 platforms
|
|
49
|
+
- Remove erroneous assertion from debug builds
|
|
50
|
+
|
|
51
|
+
#### Koffi 2.15.3
|
|
52
|
+
|
|
53
|
+
*Released on 2026-04-03*
|
|
54
|
+
|
|
55
|
+
- Fix *IsOnCentralStack()* assertion/crash when using callbacks in recent Node versions
|
|
56
|
+
- Support SetUnhandledExceptionFilter on Windows x64 and x86 ([@longhun12346](https://github.com/longhun12346))
|
|
57
|
+
- Fix incorrect stack alignment when relaying callbacks on 32-bit x86 platforms
|
|
58
|
+
|
|
59
|
+
#### Koffi 2.15.2
|
|
60
|
+
|
|
61
|
+
*Released on 2026-03-11*
|
|
62
|
+
|
|
63
|
+
- Fix possible deadlock or crash after a callback has been used when exiting from Node 24.14+
|
|
64
|
+
- Fix build problems on Android/Termux
|
|
65
|
+
- Fix failing indirect loading caused by missing path test
|
|
66
|
+
- Don't force users to set all members when using koffi.config() in TypeScript
|
|
67
|
+
- Use Clang to build Linux ARM64 prebuild
|
|
68
|
+
|
|
10
69
|
#### Koffi 2.15.1
|
|
11
70
|
|
|
12
71
|
*Released on 2025-01-24*
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/index.d.ts
CHANGED
|
@@ -145,15 +145,13 @@ export function introspect(type: TypeSpec): TypeInfo;
|
|
|
145
145
|
export function alias(name: string, type: TypeSpec): IKoffiCType;
|
|
146
146
|
|
|
147
147
|
type KoffiConfig = {
|
|
148
|
-
sync_stack_size?: number
|
|
149
|
-
sync_heap_size?: number
|
|
150
|
-
async_stack_size?: number
|
|
151
|
-
async_heap_size?: number
|
|
152
|
-
resident_async_pools?: number
|
|
153
|
-
max_async_calls?: number
|
|
154
|
-
max_type_size?: number
|
|
155
|
-
fast_pointers?: boolean;
|
|
156
|
-
fast_callbacks?: boolean;
|
|
148
|
+
sync_stack_size?: number
|
|
149
|
+
sync_heap_size?: number
|
|
150
|
+
async_stack_size?: number
|
|
151
|
+
async_heap_size?: number
|
|
152
|
+
resident_async_pools?: number
|
|
153
|
+
max_async_calls?: number
|
|
154
|
+
max_type_size?: number
|
|
157
155
|
};
|
|
158
156
|
type KoffiStats = {
|
|
159
157
|
disposed: number
|
|
@@ -171,8 +169,8 @@ export function errno(value: number): number;
|
|
|
171
169
|
|
|
172
170
|
export function reset(): void;
|
|
173
171
|
|
|
174
|
-
export const internal:
|
|
175
|
-
export const extension:
|
|
172
|
+
export const internal: Boolean;
|
|
173
|
+
export const extension: String;
|
|
176
174
|
|
|
177
175
|
export const os: {
|
|
178
176
|
errno: Record<string, number>
|
package/index.js
CHANGED
|
@@ -345,11 +345,7 @@ var require_tools = __commonJS({
|
|
|
345
345
|
}
|
|
346
346
|
function unlink_recursive(path3) {
|
|
347
347
|
try {
|
|
348
|
-
|
|
349
|
-
fs2.rmSync(path3, { recursive: true, maxRetries: process.platform == "win32" ? 3 : 0 });
|
|
350
|
-
} else {
|
|
351
|
-
fs2.rmdirSync(path3, { recursive: true, maxRetries: process.platform == "win32" ? 3 : 0 });
|
|
352
|
-
}
|
|
348
|
+
fs2.rmSync(path3, { recursive: true, maxRetries: process.platform == "win32" ? 3 : 0 });
|
|
353
349
|
} catch (err) {
|
|
354
350
|
if (err.code !== "ENOENT")
|
|
355
351
|
throw err;
|
|
@@ -402,7 +398,7 @@ var require_package = __commonJS({
|
|
|
402
398
|
"../../bin/Koffi/package/src/koffi/package.json"(exports2, module2) {
|
|
403
399
|
module2.exports = {
|
|
404
400
|
name: "koffi",
|
|
405
|
-
version: "2.16.0
|
|
401
|
+
version: "2.16.0",
|
|
406
402
|
description: "Fast and simple C FFI (foreign function interface) for Node.js",
|
|
407
403
|
keywords: [
|
|
408
404
|
"foreign",
|
|
@@ -426,15 +422,15 @@ var require_package = __commonJS({
|
|
|
426
422
|
main: "./index.js",
|
|
427
423
|
types: "./index.d.ts",
|
|
428
424
|
scripts: {
|
|
429
|
-
test: "node tools/
|
|
425
|
+
test: "node tools/brew.js test",
|
|
430
426
|
prepack: `echo 'Use "npm run package" instead' && false`,
|
|
431
427
|
prepublishOnly: `echo 'Use "npm run package" instead' && false`,
|
|
432
|
-
package: "node tools/
|
|
428
|
+
package: "node tools/brew.js build"
|
|
433
429
|
},
|
|
434
430
|
license: "MIT",
|
|
435
431
|
cnoke: {
|
|
436
432
|
api: "../../vendor/node-api-headers",
|
|
437
|
-
output: "../../bin/Koffi/{{
|
|
433
|
+
output: "../../bin/Koffi/{{ toolchain }}",
|
|
438
434
|
node: 16,
|
|
439
435
|
napi: 8,
|
|
440
436
|
require: "./index.js"
|
|
@@ -477,6 +473,7 @@ var require_init = __commonJS({
|
|
|
477
473
|
triplets.push(musl);
|
|
478
474
|
}
|
|
479
475
|
let filenames = roots.flatMap((root) => triplets.flatMap((triplet3) => [
|
|
476
|
+
`${root}/koffi/build/koffi/${triplet3}/koffi.node`,
|
|
480
477
|
`${root}/build/koffi/${triplet3}/koffi.node`,
|
|
481
478
|
`${root}/koffi/${triplet3}/koffi.node`,
|
|
482
479
|
`${root}/node_modules/koffi/build/koffi/${triplet3}/koffi.node`,
|
package/indirect.js
CHANGED
|
@@ -345,11 +345,7 @@ var require_tools = __commonJS({
|
|
|
345
345
|
}
|
|
346
346
|
function unlink_recursive(path3) {
|
|
347
347
|
try {
|
|
348
|
-
|
|
349
|
-
fs2.rmSync(path3, { recursive: true, maxRetries: process.platform == "win32" ? 3 : 0 });
|
|
350
|
-
} else {
|
|
351
|
-
fs2.rmdirSync(path3, { recursive: true, maxRetries: process.platform == "win32" ? 3 : 0 });
|
|
352
|
-
}
|
|
348
|
+
fs2.rmSync(path3, { recursive: true, maxRetries: process.platform == "win32" ? 3 : 0 });
|
|
353
349
|
} catch (err) {
|
|
354
350
|
if (err.code !== "ENOENT")
|
|
355
351
|
throw err;
|
|
@@ -402,7 +398,7 @@ var require_package = __commonJS({
|
|
|
402
398
|
"../../bin/Koffi/package/src/koffi/package.json"(exports2, module2) {
|
|
403
399
|
module2.exports = {
|
|
404
400
|
name: "koffi",
|
|
405
|
-
version: "2.16.0
|
|
401
|
+
version: "2.16.0",
|
|
406
402
|
description: "Fast and simple C FFI (foreign function interface) for Node.js",
|
|
407
403
|
keywords: [
|
|
408
404
|
"foreign",
|
|
@@ -426,15 +422,15 @@ var require_package = __commonJS({
|
|
|
426
422
|
main: "./index.js",
|
|
427
423
|
types: "./index.d.ts",
|
|
428
424
|
scripts: {
|
|
429
|
-
test: "node tools/
|
|
425
|
+
test: "node tools/brew.js test",
|
|
430
426
|
prepack: `echo 'Use "npm run package" instead' && false`,
|
|
431
427
|
prepublishOnly: `echo 'Use "npm run package" instead' && false`,
|
|
432
|
-
package: "node tools/
|
|
428
|
+
package: "node tools/brew.js build"
|
|
433
429
|
},
|
|
434
430
|
license: "MIT",
|
|
435
431
|
cnoke: {
|
|
436
432
|
api: "../../vendor/node-api-headers",
|
|
437
|
-
output: "../../bin/Koffi/{{
|
|
433
|
+
output: "../../bin/Koffi/{{ toolchain }}",
|
|
438
434
|
node: 16,
|
|
439
435
|
napi: 8,
|
|
440
436
|
require: "./index.js"
|
|
@@ -477,6 +473,7 @@ var require_init = __commonJS({
|
|
|
477
473
|
triplets.push(musl);
|
|
478
474
|
}
|
|
479
475
|
let filenames = roots.flatMap((root) => triplets.flatMap((triplet3) => [
|
|
476
|
+
`${root}/koffi/build/koffi/${triplet3}/koffi.node`,
|
|
480
477
|
`${root}/build/koffi/${triplet3}/koffi.node`,
|
|
481
478
|
`${root}/koffi/${triplet3}/koffi.node`,
|
|
482
479
|
`${root}/node_modules/koffi/build/koffi/${triplet3}/koffi.node`,
|
package/lib/native/base/base.cc
CHANGED
|
@@ -3125,12 +3125,7 @@ RenameResult RenameFile(const char *src_filename, const char *dest_filename, uns
|
|
|
3125
3125
|
if (rename(src_filename, dest_filename) < 0)
|
|
3126
3126
|
goto error;
|
|
3127
3127
|
} else {
|
|
3128
|
-
#if defined(
|
|
3129
|
-
if (!renameat2(AT_FDCWD, src_filename, AT_FDCWD, dest_filename, RENAME_NOREPLACE))
|
|
3130
|
-
goto sync;
|
|
3131
|
-
if (!IsErrnoNotSupported(errno) && errno != EINVAL)
|
|
3132
|
-
goto error;
|
|
3133
|
-
#elif defined(SYS_renameat2)
|
|
3128
|
+
#if defined(SYS_renameat2)
|
|
3134
3129
|
{
|
|
3135
3130
|
int dirfd = AT_FDCWD;
|
|
3136
3131
|
int rflags = 1; // RENAME_NOREPLACE
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "koffi",
|
|
3
|
-
"version": "2.16.0
|
|
3
|
+
"version": "2.16.0",
|
|
4
4
|
"description": "Fast and simple C FFI (foreign function interface) for Node.js",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"foreign",
|
|
@@ -24,12 +24,12 @@
|
|
|
24
24
|
"main": "./index.js",
|
|
25
25
|
"types": "./index.d.ts",
|
|
26
26
|
"scripts": {
|
|
27
|
-
"install": "node src/cnoke/cnoke.js -
|
|
27
|
+
"install": "node src/cnoke/cnoke.js -P . -D src/koffi --prebuild"
|
|
28
28
|
},
|
|
29
29
|
"license": "MIT",
|
|
30
30
|
"cnoke": {
|
|
31
31
|
"api": "../../vendor/node-api-headers",
|
|
32
|
-
"output": "build/koffi/{{
|
|
32
|
+
"output": "build/koffi/{{ toolchain }}",
|
|
33
33
|
"node": 16,
|
|
34
34
|
"napi": 8,
|
|
35
35
|
"require": "./index.js"
|
|
@@ -8,22 +8,6 @@ else()
|
|
|
8
8
|
set(USE_UNITY_BUILDS OFF CACHE BOOL "Use single-TU builds (aka. Unity builds)")
|
|
9
9
|
endif()
|
|
10
10
|
|
|
11
|
-
if(NODE_JS_LINK_DEF)
|
|
12
|
-
set(NODE_JS_LINK_LIB "${CMAKE_CURRENT_BINARY_DIR}/node.lib")
|
|
13
|
-
if (MSVC)
|
|
14
|
-
add_custom_command(OUTPUT node.lib
|
|
15
|
-
COMMAND ${CMAKE_AR} ${CMAKE_STATIC_LINKER_FLAGS}
|
|
16
|
-
/def:${NODE_JS_LINK_DEF} /out:${NODE_JS_LINK_LIB}
|
|
17
|
-
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
|
18
|
-
MAIN_DEPENDENCY ${NODE_JS_LINK_DEF})
|
|
19
|
-
else()
|
|
20
|
-
add_custom_command(OUTPUT node.lib
|
|
21
|
-
COMMAND ${CMAKE_DLLTOOL} -d ${NODE_JS_LINK_DEF} -l ${NODE_JS_LINK_LIB}
|
|
22
|
-
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
|
23
|
-
MAIN_DEPENDENCY ${NODE_JS_LINK_DEF})
|
|
24
|
-
endif()
|
|
25
|
-
endif()
|
|
26
|
-
|
|
27
11
|
function(add_node_addon)
|
|
28
12
|
cmake_parse_arguments(ARG "" "NAME" "SOURCES" ${ARGN})
|
|
29
13
|
add_library(${ARG_NAME} SHARED ${ARG_SOURCES} ${NODE_JS_SOURCES})
|
|
@@ -45,6 +29,33 @@ function(target_link_node TARGET)
|
|
|
45
29
|
endif()
|
|
46
30
|
endfunction()
|
|
47
31
|
|
|
32
|
+
if(WIN32)
|
|
33
|
+
function(create_import_lib OUTPUT SRC)
|
|
34
|
+
if (MSVC)
|
|
35
|
+
add_custom_command(OUTPUT ${OUTPUT}
|
|
36
|
+
COMMAND ${CMAKE_AR} ${CMAKE_STATIC_LINKER_FLAGS}
|
|
37
|
+
/def:${SRC} /out:"${CMAKE_CURRENT_BINARY_DIR}/${OUTPUT}"
|
|
38
|
+
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
|
39
|
+
MAIN_DEPENDENCY ${SRC})
|
|
40
|
+
elseif(DEFINED NODE_JS_DLLTOOL_MACHINE)
|
|
41
|
+
add_custom_command(OUTPUT ${OUTPUT}
|
|
42
|
+
COMMAND ${CMAKE_DLLTOOL} -d ${SRC} -l "${CMAKE_CURRENT_BINARY_DIR}/${OUTPUT}" -m ${NODE_JS_DLLTOOL_MACHINE}
|
|
43
|
+
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
|
44
|
+
MAIN_DEPENDENCY ${SRC})
|
|
45
|
+
else()
|
|
46
|
+
add_custom_command(OUTPUT ${OUTPUT}
|
|
47
|
+
COMMAND ${CMAKE_DLLTOOL} -d ${SRC} -l "${CMAKE_CURRENT_BINARY_DIR}/${OUTPUT}"
|
|
48
|
+
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
|
49
|
+
MAIN_DEPENDENCY ${SRC})
|
|
50
|
+
endif()
|
|
51
|
+
endfunction()
|
|
52
|
+
endif()
|
|
53
|
+
|
|
54
|
+
if(NODE_JS_LINK_DEF)
|
|
55
|
+
create_import_lib(node.lib ${NODE_JS_LINK_DEF})
|
|
56
|
+
set(NODE_JS_LINK_LIB "${CMAKE_CURRENT_BINARY_DIR}/node.lib")
|
|
57
|
+
endif()
|
|
58
|
+
|
|
48
59
|
if(USE_UNITY_BUILDS)
|
|
49
60
|
function(enable_unity_build TARGET)
|
|
50
61
|
cmake_parse_arguments(ARG "" "" "EXCLUDE" ${ARGN})
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
{
|
|
2
|
+
"linux_ia32": {
|
|
3
|
+
"system": "Linux",
|
|
4
|
+
"processor": "i386",
|
|
5
|
+
"triplet": "i686-linux-gnu",
|
|
6
|
+
"sysroot": "../../tools/cross/sysroots/debian_i386"
|
|
7
|
+
},
|
|
8
|
+
"linux_x64": {
|
|
9
|
+
"system": "Linux",
|
|
10
|
+
"processor": "x86_64",
|
|
11
|
+
"triplet": "x86_64-linux-gnu",
|
|
12
|
+
"sysroot": "../../tools/cross/sysroots/debian_x64"
|
|
13
|
+
},
|
|
14
|
+
"linux_armhf": {
|
|
15
|
+
"system": "Linux",
|
|
16
|
+
"processor": "arm",
|
|
17
|
+
"triplet": "arm-linux-gnueabihf",
|
|
18
|
+
"sysroot": "../../tools/cross/sysroots/debian_arm32"
|
|
19
|
+
},
|
|
20
|
+
"linux_arm64": {
|
|
21
|
+
"system": "Linux",
|
|
22
|
+
"processor": "aarch64",
|
|
23
|
+
"triplet": "aarch64-linux-gnu",
|
|
24
|
+
"sysroot": "../../tools/cross/sysroots/debian_arm64"
|
|
25
|
+
},
|
|
26
|
+
"linux_riscv64d": {
|
|
27
|
+
"system": "Linux",
|
|
28
|
+
"processor": "riscv64",
|
|
29
|
+
"triplet": "riscv64-linux-gnu",
|
|
30
|
+
"sysroot": "../../tools/cross/sysroots/debian_riscv64"
|
|
31
|
+
},
|
|
32
|
+
"linux_loong64": {
|
|
33
|
+
"system": "Linux",
|
|
34
|
+
"processor": "loongarch64",
|
|
35
|
+
"triplet": "loongarch64-linux-gnu",
|
|
36
|
+
"sysroot": "../../tools/cross/sysroots/debian_loong64"
|
|
37
|
+
},
|
|
38
|
+
|
|
39
|
+
"win32_ia32": {
|
|
40
|
+
"system": "Windows",
|
|
41
|
+
"processor": "X86",
|
|
42
|
+
"lib": "win-x86",
|
|
43
|
+
"flags": ["-DNODE_JS_LINK_FLAGS=/DELAYLOAD:node.exe;/SAFESEH:NO", "-A", "Win32"],
|
|
44
|
+
|
|
45
|
+
"triplet": "i386-pc-windows-msvc",
|
|
46
|
+
"linux": {
|
|
47
|
+
"sysroot": "../../tools/cross/sysroots/windows_i386",
|
|
48
|
+
"flags": ["-DNODE_JS_LINK_FLAGS=-Wl,/DELAYLOAD:node.exe,/SAFESEH:NO", "-DNODE_JS_DLLTOOL_MACHINE=i386"],
|
|
49
|
+
"variables": {
|
|
50
|
+
"CMAKE_DLLTOOL": "llvm-dlltool",
|
|
51
|
+
"CMAKE_RC_COMPILER": "llvm-rc",
|
|
52
|
+
"CMAKE_C_FLAGS": "-Xmicrosoft-windows-sys-root {{ sysroot }}",
|
|
53
|
+
"CMAKE_CXX_FLAGS": "-Xmicrosoft-windows-sys-root {{ sysroot }}",
|
|
54
|
+
"CMAKE_EXE_LINKER_FLAGS": "-Wl,-libpath:{{ sysroot }}/VC/Tools/MSVC/Current/lib/x86_64,-libpath:{{ sysroot }}/Kits/10/Lib/Current/ucrt/x86_64,-libpath:{{ sysroot }}/Kits/10/Lib/Current/um/x86_64 -ldelayimp",
|
|
55
|
+
"CMAKE_STATIC_LINKER_FLAGS": "-Wl,-libpath:{{ sysroot }}/VC/Tools/MSVC/Current/lib/x86_64,-libpath:{{ sysroot }}/Kits/10/Lib/Current/ucrt/x86_64,-libpath:{{ sysroot }}/Kits/10/Lib/Current/um/x86_64 -ldelayimp",
|
|
56
|
+
"CMAKE_SHARED_LINKER_FLAGS": "-Wl,-libpath:{{ sysroot }}/VC/Tools/MSVC/Current/lib/x86_64,-libpath:{{ sysroot }}/Kits/10/Lib/Current/ucrt/x86_64,-libpath:{{ sysroot }}/Kits/10/Lib/Current/um/x86_64 -ldelayimp"
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
"win32_x64": {
|
|
61
|
+
"system": "Windows",
|
|
62
|
+
"processor": "AMD64",
|
|
63
|
+
"lib": "win-x64",
|
|
64
|
+
"flags": ["-DNODE_JS_LINK_FLAGS=/DELAYLOAD:node.exe"],
|
|
65
|
+
|
|
66
|
+
"triplet": "x86_64-pc-windows-msvc",
|
|
67
|
+
"linux": {
|
|
68
|
+
"sysroot": "../../tools/cross/sysroots/windows_x64",
|
|
69
|
+
"flags": ["-DNODE_JS_LINK_FLAGS=-Wl,/DELAYLOAD:node.exe", "-DNODE_JS_DLLTOOL_MACHINE=i386:x86-64"],
|
|
70
|
+
"variables": {
|
|
71
|
+
"CMAKE_DLLTOOL": "llvm-dlltool",
|
|
72
|
+
"CMAKE_RC_COMPILER": "llvm-rc",
|
|
73
|
+
"CMAKE_C_FLAGS": "-Xmicrosoft-windows-sys-root {{ sysroot }}",
|
|
74
|
+
"CMAKE_CXX_FLAGS": "-Xmicrosoft-windows-sys-root {{ sysroot }}",
|
|
75
|
+
"CMAKE_EXE_LINKER_FLAGS": "-Wl,-libpath:{{ sysroot }}/VC/Tools/MSVC/Current/lib/x86_64,-libpath:{{ sysroot }}/Kits/10/Lib/Current/ucrt/x86_64,-libpath:{{ sysroot }}/Kits/10/Lib/Current/um/x86_64 -ldelayimp",
|
|
76
|
+
"CMAKE_STATIC_LINKER_FLAGS": "-Wl,-libpath:{{ sysroot }}/VC/Tools/MSVC/Current/lib/x86_64,-libpath:{{ sysroot }}/Kits/10/Lib/Current/ucrt/x86_64,-libpath:{{ sysroot }}/Kits/10/Lib/Current/um/x86_64 -ldelayimp",
|
|
77
|
+
"CMAKE_SHARED_LINKER_FLAGS": "-Wl,-libpath:{{ sysroot }}/VC/Tools/MSVC/Current/lib/x86_64,-libpath:{{ sysroot }}/Kits/10/Lib/Current/ucrt/x86_64,-libpath:{{ sysroot }}/Kits/10/Lib/Current/um/x86_64 -ldelayimp"
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
"win32_arm64": {
|
|
82
|
+
"system": "Windows",
|
|
83
|
+
"processor": "ARM64",
|
|
84
|
+
"lib": "win-arm64",
|
|
85
|
+
"flags": ["-DNODE_JS_LINK_FLAGS=/DELAYLOAD:node.exe;/SAFESEH:NO", "-A", "ARM64"],
|
|
86
|
+
|
|
87
|
+
"triplet": "aarch64-pc-windows-msvc",
|
|
88
|
+
"linux": {
|
|
89
|
+
"sysroot": "../../tools/cross/sysroots/windows_arm64",
|
|
90
|
+
"flags": ["-DNODE_JS_LINK_FLAGS=-Wl,/DELAYLOAD:node.exe,/SAFESEH:NO", "-DNODE_JS_DLLTOOL_MACHINE=arm64"],
|
|
91
|
+
"variables": {
|
|
92
|
+
"CMAKE_DLLTOOL": "llvm-dlltool",
|
|
93
|
+
"CMAKE_RC_COMPILER": "llvm-rc",
|
|
94
|
+
"CMAKE_C_FLAGS": "-Xmicrosoft-windows-sys-root {{ sysroot }}",
|
|
95
|
+
"CMAKE_CXX_FLAGS": "-Xmicrosoft-windows-sys-root {{ sysroot }}",
|
|
96
|
+
"CMAKE_EXE_LINKER_FLAGS": "-Wl,-libpath:{{ sysroot }}/VC/Tools/MSVC/Current/lib/aarch64,-libpath:{{ sysroot }}/Kits/10/Lib/Current/ucrt/aarch64,-libpath:{{ sysroot }}/Kits/10/Lib/Current/um/aarch64 -ldelayimp",
|
|
97
|
+
"CMAKE_STATIC_LINKER_FLAGS": "-Wl,-libpath:{{ sysroot }}/VC/Tools/MSVC/Current/lib/aarch64,-libpath:{{ sysroot }}/Kits/10/Lib/Current/ucrt/aarch64,-libpath:{{ sysroot }}/Kits/10/Lib/Current/um/aarch64 -ldelayimp",
|
|
98
|
+
"CMAKE_SHARED_LINKER_FLAGS": "-Wl,-libpath:{{ sysroot }}/VC/Tools/MSVC/Current/lib/aarch64,-libpath:{{ sysroot }}/Kits/10/Lib/Current/ucrt/aarch64,-libpath:{{ sysroot }}/Kits/10/Lib/Current/um/aarch64 -ldelayimp"
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
|
|
103
|
+
"darwin_x64": {
|
|
104
|
+
"system": "Darwin",
|
|
105
|
+
"processor": "x86_64",
|
|
106
|
+
"flags": ["-DNODE_JS_LINK_FLAGS=-undefined;dynamic_lookup", "-DCMAKE_OSX_ARCHITECTURES=x86_64"]
|
|
107
|
+
},
|
|
108
|
+
"darwin_arm64": {
|
|
109
|
+
"system": "Darwin",
|
|
110
|
+
"processor": "arm64",
|
|
111
|
+
"flags": ["-DNODE_JS_LINK_FLAGS=-undefined;dynamic_lookup", "-DCMAKE_OSX_ARCHITECTURES=arm64"]
|
|
112
|
+
},
|
|
113
|
+
|
|
114
|
+
"freebsd_x64": {
|
|
115
|
+
"system": "FreeBSD",
|
|
116
|
+
"processor": "amd64",
|
|
117
|
+
"triplet": "x86_64-unknown-freebsd",
|
|
118
|
+
"sysroot": "../../tools/cross/sysroots/freebsd_x64"
|
|
119
|
+
},
|
|
120
|
+
"freebsd_arm64": {
|
|
121
|
+
"system": "FreeBSD",
|
|
122
|
+
"processor": "arm64",
|
|
123
|
+
"triplet": "aarch64-unknown-freebsd",
|
|
124
|
+
"sysroot": "../../tools/cross/sysroots/freebsd_arm64"
|
|
125
|
+
}
|
|
126
|
+
}
|
package/src/cnoke/cnoke.js
CHANGED
|
@@ -53,41 +53,36 @@ async function main() {
|
|
|
53
53
|
if (arg == '--help') {
|
|
54
54
|
print_usage();
|
|
55
55
|
return;
|
|
56
|
-
} else if (arg == '-
|
|
56
|
+
} else if (arg == '-D' || arg == '--directory') {
|
|
57
57
|
if (value == null)
|
|
58
58
|
throw new Error(`Missing value for ${arg}`);
|
|
59
59
|
|
|
60
60
|
config.project_dir = fs.realpathSync(value);
|
|
61
|
-
} else if (arg == '-
|
|
61
|
+
} else if (arg == '-P' || arg == '--package') {
|
|
62
62
|
if (value == null)
|
|
63
63
|
throw new Error(`Missing value for ${arg}`);
|
|
64
64
|
|
|
65
65
|
config.package_dir = fs.realpathSync(value);
|
|
66
|
-
} else if (arg == '-O' || arg == '--
|
|
66
|
+
} else if (arg == '-O' || arg == '--output') {
|
|
67
67
|
if (value == null)
|
|
68
68
|
throw new Error(`Missing value for ${arg}`);
|
|
69
69
|
|
|
70
70
|
config.output_directory = value;
|
|
71
|
-
} else if ((command == 'build' || command == 'configure') &&
|
|
71
|
+
} else if ((command == 'build' || command == 'configure') && arg == '--runtime') {
|
|
72
72
|
if (value == null)
|
|
73
73
|
throw new Error(`Missing value for ${arg}`);
|
|
74
74
|
if (!value.match(/^[0-9]+\.[0-9]+\.[0-9]+$/))
|
|
75
75
|
throw new Error(`Malformed runtime version '${value}'`);
|
|
76
76
|
|
|
77
77
|
config.runtime_version = value;
|
|
78
|
-
} else if ((command == 'build' || command == 'configure') &&
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
config.arch = value;
|
|
83
|
-
} else if ((command == 'build' || command == 'configure') && (arg == '-t' || arg == '--toolset')) {
|
|
78
|
+
} else if ((command == 'build' || command == 'configure') && arg == '--clang') {
|
|
79
|
+
config.prefer_clang = true;
|
|
80
|
+
} else if ((command == 'build' || command == 'configure') && (arg == '-t' || arg == '--toolchain')) {
|
|
84
81
|
if (value == null)
|
|
85
82
|
throw new Error(`Missing value for ${arg}`);
|
|
86
83
|
|
|
87
|
-
config.
|
|
88
|
-
} else if ((command == 'build' || command == 'configure') && (arg == '-
|
|
89
|
-
config.prefer_clang = true;
|
|
90
|
-
} else if ((command == 'build' || command == 'configure') && (arg == '-B' || arg == '--config')) {
|
|
84
|
+
config.toolchain = value;
|
|
85
|
+
} else if ((command == 'build' || command == 'configure') && (arg == '-c' || arg == '--config')) {
|
|
91
86
|
if (value == null)
|
|
92
87
|
throw new Error(`Missing value for ${arg}`);
|
|
93
88
|
|
|
@@ -100,17 +95,19 @@ async function main() {
|
|
|
100
95
|
throw new Error(`Unknown value '${value}' for ${arg}`);
|
|
101
96
|
} break;
|
|
102
97
|
}
|
|
103
|
-
} else if ((command == 'build' || command == 'configure') &&
|
|
98
|
+
} else if ((command == 'build' || command == 'configure') && arg == '--debug') {
|
|
104
99
|
config.mode = 'Debug';
|
|
105
|
-
} else if (command == 'build' && arg == '--
|
|
106
|
-
config.
|
|
100
|
+
} else if ((command == 'build' || command == 'configure') && arg == '--release') {
|
|
101
|
+
config.mode = 'Release';
|
|
107
102
|
} else if (command == 'build' && arg == '--prebuild') {
|
|
108
103
|
config.prebuild = true;
|
|
109
|
-
} else if (command == 'build' &&
|
|
104
|
+
} else if (command == 'build' && arg == '--target') {
|
|
110
105
|
if (value == null)
|
|
111
106
|
throw new Error(`Missing value for ${arg}`);
|
|
112
107
|
|
|
113
108
|
config.targets = [value];
|
|
109
|
+
} else if (command == 'build' && (arg == '-v' || arg == '--verbose')) {
|
|
110
|
+
config.verbose = true;
|
|
114
111
|
} else {
|
|
115
112
|
if (arg[0] == '-') {
|
|
116
113
|
throw new Error(`Unexpected argument '${arg}'`);
|
|
@@ -141,30 +138,27 @@ Commands:
|
|
|
141
138
|
|
|
142
139
|
Options:
|
|
143
140
|
|
|
144
|
-
-
|
|
141
|
+
-D, --directory <DIR> Change source directory
|
|
145
142
|
(default: current working directory)
|
|
146
|
-
-
|
|
143
|
+
-P, --package <DIR> Change package directory
|
|
147
144
|
(default: current working directory)
|
|
148
|
-
|
|
149
|
-
-O, --out <DIR> Set explicit output directory
|
|
145
|
+
-O, --output <DIR> Set explicit output directory
|
|
150
146
|
(default: ./build)
|
|
151
147
|
|
|
152
|
-
-
|
|
148
|
+
-c, --config <CONFIG> Change build type: RelWithDebInfo, Debug, Release
|
|
153
149
|
(default: ${cnoke.DefaultOptions.mode})
|
|
154
|
-
|
|
150
|
+
--debug Shortcut for --config Debug
|
|
151
|
+
--release Shortcut for --config Release
|
|
155
152
|
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
-a, --arch <ARCH> Change architecture and ABI
|
|
159
|
-
(default: ${cnoke.determine_arch()})
|
|
160
|
-
-v, --runtime-version <VERSION> Change node version
|
|
153
|
+
-t, --toolchain <TOOLCHAIN> Cross-compile for specific platform
|
|
154
|
+
--runtime <VERSION> Change node version
|
|
161
155
|
(default: ${process.version})
|
|
162
|
-
|
|
163
|
-
-C, --prefer-clang Use Clang instead of default CMake compiler
|
|
156
|
+
--clang Use Clang instead of default CMake compiler
|
|
164
157
|
|
|
165
|
-
|
|
158
|
+
--prebuild Use prebuilt binary if available
|
|
159
|
+
--target <TARGET> Only build the specified target
|
|
166
160
|
|
|
167
|
-
|
|
161
|
+
-v, --verbose Show build commands while building
|
|
168
162
|
|
|
169
163
|
The ARCH value is similar to process.arch, with the following differences:
|
|
170
164
|
|