koffi 2.1.3 → 2.1.4
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/package.json +44 -68
- package/{LICENSE.txt → src/cnoke/LICENSE.txt} +0 -0
- package/src/cnoke/README.md +97 -0
- package/src/cnoke/assets/FindCNoke.cmake +71 -0
- package/src/cnoke/assets/win_delay_hook.c +34 -0
- package/src/cnoke/cnoke.js +968 -0
- package/src/cnoke/package.json +25 -0
- package/{vendor → src/core}/libcc/libcc.cc +38 -11
- package/{vendor → src/core}/libcc/libcc.hh +4 -2
- package/{CMakeLists.txt → src/koffi/CMakeLists.txt} +3 -3
- package/{ChangeLog.md → src/koffi/ChangeLog.md} +11 -0
- package/src/koffi/LICENSE.txt +661 -0
- package/{README.md → src/koffi/README.md} +0 -0
- package/{benchmark → src/koffi/benchmark}/CMakeLists.txt +9 -6
- package/{benchmark → src/koffi/benchmark}/atoi_koffi.js +0 -0
- package/{benchmark → src/koffi/benchmark}/atoi_napi.cc +1 -1
- package/{benchmark → src/koffi/benchmark}/atoi_napi.js +0 -0
- package/{benchmark → src/koffi/benchmark}/atoi_node_ffi.js +0 -0
- package/src/koffi/benchmark/benchmark.js +118 -0
- package/src/koffi/benchmark/rand_koffi.js +52 -0
- package/src/koffi/benchmark/rand_napi.cc +69 -0
- package/src/koffi/benchmark/rand_napi.js +47 -0
- package/src/koffi/benchmark/rand_node_ffi.js +55 -0
- package/{benchmark → src/koffi/benchmark}/raylib_cc.cc +2 -2
- package/{benchmark → src/koffi/benchmark}/raylib_cc.js +0 -0
- package/{benchmark → src/koffi/benchmark}/raylib_koffi.js +0 -0
- package/{benchmark → src/koffi/benchmark}/raylib_node_ffi.js +0 -0
- package/{benchmark → src/koffi/benchmark}/raylib_node_raylib.js +0 -0
- package/src/koffi/build/2.1.4/koffi_darwin_arm64.tar.gz +0 -0
- package/src/koffi/build/2.1.4/koffi_darwin_x64.tar.gz +0 -0
- package/src/koffi/build/2.1.4/koffi_freebsd_arm64.tar.gz +0 -0
- package/src/koffi/build/2.1.4/koffi_freebsd_ia32.tar.gz +0 -0
- package/src/koffi/build/2.1.4/koffi_freebsd_x64.tar.gz +0 -0
- package/src/koffi/build/2.1.4/koffi_linux_arm32hf.tar.gz +0 -0
- package/src/koffi/build/2.1.4/koffi_linux_arm64.tar.gz +0 -0
- package/src/koffi/build/2.1.4/koffi_linux_ia32.tar.gz +0 -0
- package/src/koffi/build/2.1.4/koffi_linux_riscv64hf64.tar.gz +0 -0
- package/src/koffi/build/2.1.4/koffi_linux_x64.tar.gz +0 -0
- package/src/koffi/build/2.1.4/koffi_openbsd_ia32.tar.gz +0 -0
- package/src/koffi/build/2.1.4/koffi_openbsd_x64.tar.gz +0 -0
- package/src/koffi/build/2.1.4/koffi_win32_arm64.tar.gz +0 -0
- package/src/koffi/build/2.1.4/koffi_win32_ia32.tar.gz +0 -0
- package/src/koffi/build/2.1.4/koffi_win32_x64.tar.gz +0 -0
- package/{doc → src/koffi/doc}/Makefile +0 -0
- package/{doc → src/koffi/doc}/benchmarks.md +0 -0
- package/{doc → src/koffi/doc}/benchmarks.xlsx +0 -0
- package/{doc → src/koffi/doc}/changes.md +0 -0
- package/{doc → src/koffi/doc}/conf.py +0 -0
- package/{doc → src/koffi/doc}/contribute.md +5 -5
- package/{doc → src/koffi/doc}/functions.md +0 -0
- package/{doc → src/koffi/doc}/index.rst +1 -1
- package/{doc → src/koffi/doc}/make.bat +0 -0
- package/{doc → src/koffi/doc}/memory.md +1 -0
- package/{doc → src/koffi/doc}/platforms.md +0 -0
- package/{doc → src/koffi/doc}/poetry.lock +0 -0
- package/{doc → src/koffi/doc}/pyproject.toml +0 -0
- package/{doc → src/koffi/doc}/start.md +0 -0
- package/{doc → src/koffi/doc}/static/bench_linux.png +0 -0
- package/{doc → src/koffi/doc}/static/bench_windows.png +0 -0
- package/{doc → src/koffi/doc}/static/custom.css +0 -0
- package/{doc → src/koffi/doc}/static/perf_linux_20220623.png +0 -0
- package/{doc → src/koffi/doc}/static/perf_linux_20220623_2.png +0 -0
- package/{doc → src/koffi/doc}/static/perf_linux_20220627.png +0 -0
- package/{doc → src/koffi/doc}/static/perf_linux_20220628.png +0 -0
- package/{doc → src/koffi/doc}/static/perf_linux_20220812.png +0 -0
- package/{doc → src/koffi/doc}/static/perf_windows_20220623.png +0 -0
- package/{doc → src/koffi/doc}/static/perf_windows_20220623_2.png +0 -0
- package/{doc → src/koffi/doc}/static/perf_windows_20220627.png +0 -0
- package/{doc → src/koffi/doc}/static/perf_windows_20220628.png +0 -0
- package/{doc → src/koffi/doc}/static/perf_windows_20220812.png +0 -0
- package/{doc → src/koffi/doc}/templates/badges.html +1 -1
- package/{doc → src/koffi/doc}/types.md +0 -0
- package/src/koffi/qemu/qemu/.gitkeep +0 -0
- package/{qemu → src/koffi/qemu}/qemu.js +217 -131
- package/{qemu → src/koffi/qemu}/registry/machines.json +24 -0
- package/{qemu → src/koffi/qemu}/registry/sha256sum.txt +0 -0
- package/src/{abi_arm32.cc → koffi/src/abi_arm32.cc} +1 -1
- package/src/{abi_arm32_fwd.S → koffi/src/abi_arm32_fwd.S} +0 -0
- package/src/{abi_arm64.cc → koffi/src/abi_arm64.cc} +1 -1
- package/src/{abi_arm64_fwd.S → koffi/src/abi_arm64_fwd.S} +0 -0
- package/src/{abi_arm64_fwd.asm → koffi/src/abi_arm64_fwd.asm} +0 -0
- package/src/{abi_riscv64.cc → koffi/src/abi_riscv64.cc} +1 -1
- package/src/{abi_riscv64_fwd.S → koffi/src/abi_riscv64_fwd.S} +0 -0
- package/src/{abi_x64_sysv.cc → koffi/src/abi_x64_sysv.cc} +1 -1
- package/src/{abi_x64_sysv_fwd.S → koffi/src/abi_x64_sysv_fwd.S} +0 -0
- package/src/{abi_x64_win.cc → koffi/src/abi_x64_win.cc} +1 -1
- package/src/{abi_x64_win_fwd.asm → koffi/src/abi_x64_win_fwd.asm} +0 -0
- package/src/{abi_x86.cc → koffi/src/abi_x86.cc} +1 -1
- package/src/{abi_x86_fwd.S → koffi/src/abi_x86_fwd.S} +0 -0
- package/src/{abi_x86_fwd.asm → koffi/src/abi_x86_fwd.asm} +0 -0
- package/src/{call.cc → koffi/src/call.cc} +1 -1
- package/src/{call.hh → koffi/src/call.hh} +2 -2
- package/src/{ffi.cc → koffi/src/ffi.cc} +34 -18
- package/src/{ffi.hh → koffi/src/ffi.hh} +5 -3
- package/src/{index.js → koffi/src/index.js} +0 -0
- package/src/{parser.cc → koffi/src/parser.cc} +1 -1
- package/src/{parser.hh → koffi/src/parser.hh} +1 -1
- package/src/{util.cc → koffi/src/util.cc} +1 -1
- package/src/{util.hh → koffi/src/util.hh} +1 -1
- package/{test → src/koffi/test}/CMakeLists.txt +14 -15
- package/{test → src/koffi/test}/async.js +0 -0
- package/{test → src/koffi/test}/callbacks.js +0 -0
- package/{test → src/koffi/test}/misc.c +13 -0
- package/{test → src/koffi/test}/misc.def +0 -0
- package/{test → src/koffi/test}/raylib.js +0 -0
- package/{test → src/koffi/test}/sqlite.js +1 -1
- package/{test → src/koffi/test}/sync.js +17 -0
- package/vendor/brotli/BUILD +144 -0
- package/vendor/brotli/CMakeLists.txt +421 -0
- package/vendor/brotli/CONTRIBUTING.md +27 -0
- package/vendor/brotli/LICENSE +19 -0
- package/vendor/brotli/MANIFEST.in +17 -0
- package/vendor/brotli/Makefile +55 -0
- package/vendor/brotli/Makefile.am +38 -0
- package/vendor/brotli/README +15 -0
- package/vendor/brotli/README.md +104 -0
- package/vendor/brotli/WORKSPACE +21 -0
- package/vendor/brotli/bootstrap +35 -0
- package/vendor/brotli/c/common/constants.c +15 -0
- package/vendor/brotli/c/common/constants.h +200 -0
- package/vendor/brotli/c/common/context.c +156 -0
- package/vendor/brotli/c/common/context.h +113 -0
- package/vendor/brotli/c/common/dictionary.c +5914 -0
- package/vendor/brotli/c/common/dictionary.h +64 -0
- package/vendor/brotli/c/common/platform.c +22 -0
- package/vendor/brotli/c/common/platform.h +594 -0
- package/vendor/brotli/c/common/transform.c +291 -0
- package/vendor/brotli/c/common/transform.h +85 -0
- package/vendor/brotli/c/common/version.h +26 -0
- package/vendor/brotli/c/dec/bit_reader.c +76 -0
- package/vendor/brotli/c/dec/bit_reader.h +351 -0
- package/vendor/brotli/c/dec/decode.c +2608 -0
- package/vendor/brotli/c/dec/huffman.c +339 -0
- package/vendor/brotli/c/dec/huffman.h +121 -0
- package/vendor/brotli/c/dec/prefix.h +732 -0
- package/vendor/brotli/c/dec/state.c +159 -0
- package/vendor/brotli/c/dec/state.h +365 -0
- package/vendor/brotli/c/enc/backward_references.c +145 -0
- package/vendor/brotli/c/enc/backward_references.h +39 -0
- package/vendor/brotli/c/enc/backward_references_hq.c +843 -0
- package/vendor/brotli/c/enc/backward_references_hq.h +95 -0
- package/vendor/brotli/c/enc/backward_references_inc.h +163 -0
- package/vendor/brotli/c/enc/bit_cost.c +35 -0
- package/vendor/brotli/c/enc/bit_cost.h +63 -0
- package/vendor/brotli/c/enc/bit_cost_inc.h +127 -0
- package/vendor/brotli/c/enc/block_encoder_inc.h +34 -0
- package/vendor/brotli/c/enc/block_splitter.c +194 -0
- package/vendor/brotli/c/enc/block_splitter.h +51 -0
- package/vendor/brotli/c/enc/block_splitter_inc.h +440 -0
- package/vendor/brotli/c/enc/brotli_bit_stream.c +1314 -0
- package/vendor/brotli/c/enc/brotli_bit_stream.h +84 -0
- package/vendor/brotli/c/enc/cluster.c +56 -0
- package/vendor/brotli/c/enc/cluster.h +48 -0
- package/vendor/brotli/c/enc/cluster_inc.h +320 -0
- package/vendor/brotli/c/enc/command.c +28 -0
- package/vendor/brotli/c/enc/command.h +190 -0
- package/vendor/brotli/c/enc/compress_fragment.c +790 -0
- package/vendor/brotli/c/enc/compress_fragment.h +61 -0
- package/vendor/brotli/c/enc/compress_fragment_two_pass.c +645 -0
- package/vendor/brotli/c/enc/compress_fragment_two_pass.h +54 -0
- package/vendor/brotli/c/enc/dictionary_hash.c +1846 -0
- package/vendor/brotli/c/enc/dictionary_hash.h +25 -0
- package/vendor/brotli/c/enc/encode.c +1927 -0
- package/vendor/brotli/c/enc/encoder_dict.c +33 -0
- package/vendor/brotli/c/enc/encoder_dict.h +43 -0
- package/vendor/brotli/c/enc/entropy_encode.c +503 -0
- package/vendor/brotli/c/enc/entropy_encode.h +122 -0
- package/vendor/brotli/c/enc/entropy_encode_static.h +539 -0
- package/vendor/brotli/c/enc/fast_log.c +105 -0
- package/vendor/brotli/c/enc/fast_log.h +66 -0
- package/vendor/brotli/c/enc/find_match_length.h +79 -0
- package/vendor/brotli/c/enc/hash.h +488 -0
- package/vendor/brotli/c/enc/hash_composite_inc.h +125 -0
- package/vendor/brotli/c/enc/hash_forgetful_chain_inc.h +293 -0
- package/vendor/brotli/c/enc/hash_longest_match64_inc.h +267 -0
- package/vendor/brotli/c/enc/hash_longest_match_inc.h +262 -0
- package/vendor/brotli/c/enc/hash_longest_match_quickly_inc.h +266 -0
- package/vendor/brotli/c/enc/hash_rolling_inc.h +212 -0
- package/vendor/brotli/c/enc/hash_to_binary_tree_inc.h +329 -0
- package/vendor/brotli/c/enc/histogram.c +100 -0
- package/vendor/brotli/c/enc/histogram.h +63 -0
- package/vendor/brotli/c/enc/histogram_inc.h +51 -0
- package/vendor/brotli/c/enc/literal_cost.c +175 -0
- package/vendor/brotli/c/enc/literal_cost.h +30 -0
- package/vendor/brotli/c/enc/memory.c +170 -0
- package/vendor/brotli/c/enc/memory.h +114 -0
- package/vendor/brotli/c/enc/metablock.c +663 -0
- package/vendor/brotli/c/enc/metablock.h +105 -0
- package/vendor/brotli/c/enc/metablock_inc.h +183 -0
- package/vendor/brotli/c/enc/params.h +46 -0
- package/vendor/brotli/c/enc/prefix.h +53 -0
- package/vendor/brotli/c/enc/quality.h +165 -0
- package/vendor/brotli/c/enc/ringbuffer.h +167 -0
- package/vendor/brotli/c/enc/static_dict.c +486 -0
- package/vendor/brotli/c/enc/static_dict.h +40 -0
- package/vendor/brotli/c/enc/static_dict_lut.h +5864 -0
- package/vendor/brotli/c/enc/utf8_util.c +85 -0
- package/vendor/brotli/c/enc/utf8_util.h +32 -0
- package/vendor/brotli/c/enc/write_bits.h +87 -0
- package/vendor/brotli/c/include/brotli/decode.h +344 -0
- package/vendor/brotli/c/include/brotli/encode.h +448 -0
- package/vendor/brotli/c/include/brotli/port.h +288 -0
- package/vendor/brotli/c/include/brotli/types.h +83 -0
- package/vendor/brotli/c/tools/brotli.c +1116 -0
- package/vendor/brotli/c/tools/brotli.md +107 -0
- package/vendor/brotli/compiler_config_setting.bzl +28 -0
- package/vendor/brotli/configure +8 -0
- package/vendor/brotli/configure-cmake +318 -0
- package/vendor/brotli/configure.ac +14 -0
- package/vendor/brotli/docs/brotli.1 +132 -0
- package/vendor/brotli/docs/constants.h.3 +47 -0
- package/vendor/brotli/docs/decode.h.3 +415 -0
- package/vendor/brotli/docs/encode.h.3 +586 -0
- package/vendor/brotli/docs/types.h.3 +117 -0
- package/vendor/brotli/premake5.lua +78 -0
- package/vendor/brotli/python/Makefile +57 -0
- package/vendor/brotli/python/README.md +54 -0
- package/vendor/brotli/python/_brotli.cc +753 -0
- package/vendor/brotli/python/bro.py +160 -0
- package/vendor/brotli/python/brotli.py +56 -0
- package/vendor/brotli/python/tests/__init__.py +0 -0
- package/vendor/brotli/python/tests/_test_utils.py +112 -0
- package/vendor/brotli/python/tests/bro_test.py +102 -0
- package/vendor/brotli/python/tests/compress_test.py +41 -0
- package/vendor/brotli/python/tests/compressor_test.py +94 -0
- package/vendor/brotli/python/tests/decompress_test.py +42 -0
- package/vendor/brotli/python/tests/decompressor_test.py +59 -0
- package/vendor/brotli/scripts/libbrotlicommon.pc.in +11 -0
- package/vendor/brotli/scripts/libbrotlidec.pc.in +12 -0
- package/vendor/brotli/scripts/libbrotlienc.pc.in +12 -0
- package/vendor/brotli/scripts/sources.lst +104 -0
- package/vendor/brotli/setup.cfg +5 -0
- package/vendor/brotli/setup.py +293 -0
- package/vendor/brotli/tests/Makefile +17 -0
- package/vendor/brotli/tests/compatibility_test.sh +25 -0
- package/vendor/brotli/tests/roundtrip_test.sh +36 -0
- package/vendor/brotli/tests/run-compatibility-test.cmake +31 -0
- package/vendor/brotli/tests/run-roundtrip-test.cmake +36 -0
- package/vendor/brotli/tests/testdata/empty +0 -0
- package/vendor/brotli/tests/testdata/empty.compressed +1 -0
- package/vendor/brotli/tests/testdata/ukkonooa +1 -0
- package/vendor/brotli/tests/testdata/ukkonooa.compressed +0 -0
- package/vendor/miniz/ChangeLog.md +235 -0
- package/vendor/miniz/LICENSE +22 -0
- package/vendor/miniz/examples/example1.c +105 -0
- package/vendor/miniz/examples/example2.c +164 -0
- package/vendor/miniz/examples/example3.c +269 -0
- package/vendor/miniz/examples/example4.c +102 -0
- package/vendor/miniz/examples/example5.c +327 -0
- package/vendor/miniz/examples/example6.c +166 -0
- package/vendor/miniz/miniz.c +7835 -0
- package/vendor/miniz/miniz.h +1422 -0
- package/vendor/miniz/readme.md +46 -0
- package/vendor/{sqlite3 → sqlite3mc}/sqlite3ext.h +18 -2
- package/vendor/{sqlite3/sqlite3.c → sqlite3mc/sqlite3mc.c} +60872 -4890
- package/vendor/sqlite3mc/sqlite3mc.def +312 -0
- package/vendor/{sqlite3/sqlite3.h → sqlite3mc/sqlite3mc.h} +480 -36
- package/build/qemu/2.1.3/koffi_darwin_arm64.tar.gz +0 -0
- package/build/qemu/2.1.3/koffi_darwin_x64.tar.gz +0 -0
- package/build/qemu/2.1.3/koffi_freebsd_arm64.tar.gz +0 -0
- package/build/qemu/2.1.3/koffi_freebsd_ia32.tar.gz +0 -0
- package/build/qemu/2.1.3/koffi_freebsd_x64.tar.gz +0 -0
- package/build/qemu/2.1.3/koffi_linux_arm32hf.tar.gz +0 -0
- package/build/qemu/2.1.3/koffi_linux_arm64.tar.gz +0 -0
- package/build/qemu/2.1.3/koffi_linux_ia32.tar.gz +0 -0
- package/build/qemu/2.1.3/koffi_linux_riscv64hf64.tar.gz +0 -0
- package/build/qemu/2.1.3/koffi_linux_x64.tar.gz +0 -0
- package/build/qemu/2.1.3/koffi_openbsd_ia32.tar.gz +0 -0
- package/build/qemu/2.1.3/koffi_openbsd_x64.tar.gz +0 -0
- package/build/qemu/2.1.3/koffi_win32_arm64.tar.gz +0 -0
- package/build/qemu/2.1.3/koffi_win32_ia32.tar.gz +0 -0
- package/build/qemu/2.1.3/koffi_win32_x64.tar.gz +0 -0
- package/vendor/_patches/glfw_001_fix_openbsd_xlib_soname.patch +0 -145
- package/vendor/raylib/projects/VS2019-Android/raylib_android/raylib_android.NativeActivity/raylib_android.NativeActivity.vcxproj +0 -226
- package/vendor/raylib/projects/VS2019-Android/raylib_android/raylib_android.NativeActivity/raylib_android.NativeActivity.vcxproj.filters +0 -10
- package/vendor/raylib/projects/VS2019-Android/raylib_android/raylib_android.NativeActivity/raylib_android.NativeActivity.vcxproj.user +0 -4
- package/vendor/raylib/projects/VS2019-Android/raylib_android.sln +0 -75
- package/vendor/raylib/projects/VS2022/examples/audio_module_playing.vcxproj +0 -390
- package/vendor/raylib/projects/VS2022/examples/audio_multichannel_sound.vcxproj +0 -390
- package/vendor/raylib/projects/VS2022/examples/audio_music_stream.vcxproj +0 -390
- package/vendor/raylib/projects/VS2022/examples/audio_raw_stream.vcxproj +0 -390
- package/vendor/raylib/projects/VS2022/examples/audio_sound_loading.vcxproj +0 -390
- package/vendor/raylib/projects/VS2022/examples/audio_stream_effects.vcxproj +0 -390
- package/vendor/raylib/projects/VS2022/examples/core_2d_camera.vcxproj +0 -390
- package/vendor/raylib/projects/VS2022/examples/core_2d_camera_mouse_zoom.vcxproj +0 -390
- package/vendor/raylib/projects/VS2022/examples/core_2d_camera_platformer.vcxproj +0 -390
- package/vendor/raylib/projects/VS2022/examples/core_3d_camera_first_person.vcxproj +0 -390
- package/vendor/raylib/projects/VS2022/examples/core_3d_camera_free.vcxproj +0 -390
- package/vendor/raylib/projects/VS2022/examples/core_3d_camera_mode.vcxproj +0 -390
- package/vendor/raylib/projects/VS2022/examples/core_3d_picking.vcxproj +0 -390
- package/vendor/raylib/projects/VS2022/examples/core_basic_screen_manager.vcxproj +0 -390
- package/vendor/raylib/projects/VS2022/examples/core_basic_window.vcxproj +0 -390
- package/vendor/raylib/projects/VS2022/examples/core_custom_frame_control.vcxproj +0 -390
- package/vendor/raylib/projects/VS2022/examples/core_custom_logging.vcxproj +0 -390
- package/vendor/raylib/projects/VS2022/examples/core_drop_files.vcxproj +0 -390
- package/vendor/raylib/projects/VS2022/examples/core_input_gamepad.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/core_input_gestures.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/core_input_keys.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/core_input_mouse.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/core_input_mouse_wheel.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/core_input_multitouch.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/core_loading_thread.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/core_random_values.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/core_scissor_test.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/core_split_screen.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/core_storage_values.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/core_vr_simulator.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/core_window_flags.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/core_window_letterbox.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/core_window_should_close.vcxproj +0 -390
- package/vendor/raylib/projects/VS2022/examples/core_world_screen.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/easings_testbed.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/embedded_files_loading.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/models_animation.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/models_billboard.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/models_box_collisions.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/models_cubicmap.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/models_first_person_maze.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/models_geometric_shapes.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/models_heightmap.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/models_loading.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/models_loading_gltf.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/models_loading_vox.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/models_mesh_generation.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/models_mesh_picking.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/models_orthographic_projection.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/models_rlgl_solar_system.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/models_skybox.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/models_waving_cubes.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/models_yaw_pitch_roll.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/rlgl_compute_shaders.vcxproj +0 -391
- package/vendor/raylib/projects/VS2022/examples/rlgl_standalone.vcxproj +0 -391
- package/vendor/raylib/projects/VS2022/examples/shaders_basic_lighting.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shaders_custom_uniform.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shaders_eratosthenes.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shaders_fog.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shaders_hot_reloading.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shaders_julia_set.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shaders_mesh_instancing.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shaders_model_shader.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shaders_multi_sample2d.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shaders_palette_switch.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shaders_postprocessing.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shaders_raymarching.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shaders_shapes_textures.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shaders_simple_mask.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shaders_spotlight.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shaders_texture_drawing.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shaders_texture_waves.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shapes_basic_shapes.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shapes_bouncing_ball.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shapes_collision_area.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shapes_colors_palette.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shapes_draw_circle_sector.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shapes_draw_rectangle_rounded.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shapes_draw_ring.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shapes_easings_ball_anim.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shapes_easings_box_anim.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shapes_easings_rectangle_array.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shapes_following_eyes.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shapes_lines_bezier.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shapes_logo_raylib.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shapes_logo_raylib_anim.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shapes_rectangle_scaling.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/text_codepoints_loading.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/text_draw_3d.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/text_font_filters.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/text_font_loading.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/text_font_sdf.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/text_font_spritefont.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/text_format_text.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/text_input_box.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/text_raylib_fonts.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/text_rectangle_bounds.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/text_unicode.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/text_writing_anim.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/textures_background_scrolling.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/textures_blend_modes.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/textures_bunnymark.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/textures_draw_tiled.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/textures_fog_of_war.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/textures_gif_player.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/textures_image_drawing.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/textures_image_generation.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/textures_image_loading.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/textures_image_processing.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/textures_image_text.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/textures_logo_raylib.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/textures_mouse_painting.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/textures_npatch_drawing.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/textures_particles_blending.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/textures_polygon.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/textures_raw_data.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/textures_sprite_anim.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/textures_sprite_button.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/textures_sprite_explosion.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/textures_srcrec_dstrec.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/textures_to_image.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/raylib/raylib.vcxproj +0 -340
- package/vendor/raylib/projects/VS2022/raylib.sln +0 -2347
- package/vendor/sqlite3/shell.c +0 -23496
|
@@ -20,7 +20,7 @@ const fs = require('fs');
|
|
|
20
20
|
const os = require('os');
|
|
21
21
|
const path = require('path');
|
|
22
22
|
const util = require('util');
|
|
23
|
-
const { spawn, spawnSync } = require('child_process');
|
|
23
|
+
const { spawn, spawnSync, execFileSync } = require('child_process');
|
|
24
24
|
const { NodeSSH } = require('node-ssh');
|
|
25
25
|
const chalk = require('chalk');
|
|
26
26
|
const minimatch = require('minimatch');
|
|
@@ -43,7 +43,7 @@ main();
|
|
|
43
43
|
|
|
44
44
|
async function main() {
|
|
45
45
|
script_dir = fs.realpathSync(__dirname);
|
|
46
|
-
root_dir = fs.realpathSync(script_dir + '
|
|
46
|
+
root_dir = fs.realpathSync(script_dir + '/../../..');
|
|
47
47
|
|
|
48
48
|
// All the code assumes we are working from the script directory
|
|
49
49
|
process.chdir(script_dir);
|
|
@@ -53,11 +53,16 @@ async function main() {
|
|
|
53
53
|
|
|
54
54
|
// Parse options
|
|
55
55
|
{
|
|
56
|
+
if (process.argv[2] == '--help') {
|
|
57
|
+
print_usage();
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
56
60
|
if (process.argv.length < 3 || process.argv[2][0] == '-')
|
|
57
61
|
throw new Error(`Missing command, use --help`);
|
|
58
62
|
|
|
59
63
|
switch (process.argv[2]) {
|
|
60
64
|
case 'pack': { command = pack; } break;
|
|
65
|
+
case 'publish': { command = publish; } break;
|
|
61
66
|
case 'test': { command = test; } break;
|
|
62
67
|
case 'start': { command = start; } break;
|
|
63
68
|
case 'stop': { command = stop; } break;
|
|
@@ -198,7 +203,8 @@ function print_usage() {
|
|
|
198
203
|
|
|
199
204
|
Commands:
|
|
200
205
|
test Run the machines and perform the tests (default)
|
|
201
|
-
pack
|
|
206
|
+
pack Create NPM package with prebuilt Koffi binaries
|
|
207
|
+
publish Publish NPM package with prebuilt Koffi binaries
|
|
202
208
|
|
|
203
209
|
start Start the machines but don't run anythingh
|
|
204
210
|
stop Stop running machines
|
|
@@ -208,7 +214,7 @@ Commands:
|
|
|
208
214
|
reset Reset initial disk snapshot
|
|
209
215
|
|
|
210
216
|
Options:
|
|
211
|
-
--
|
|
217
|
+
--no_accel Disable QEMU acceleration
|
|
212
218
|
`;
|
|
213
219
|
|
|
214
220
|
console.log(help);
|
|
@@ -283,9 +289,36 @@ async function start(detach = true) {
|
|
|
283
289
|
}
|
|
284
290
|
|
|
285
291
|
async function pack() {
|
|
286
|
-
let
|
|
292
|
+
let pack_dir = script_dir + '/../build';
|
|
293
|
+
let dist_dir = script_dir + '/../build/dist';
|
|
294
|
+
|
|
295
|
+
let success = await prepare(dist_dir);
|
|
296
|
+
if (!success)
|
|
297
|
+
return false;
|
|
298
|
+
|
|
299
|
+
execFileSync('npm', ['pack', '--pack-destination', pack_dir], {
|
|
300
|
+
cwd: dist_dir,
|
|
301
|
+
stdio: 'inherit',
|
|
302
|
+
});
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
async function publish() {
|
|
306
|
+
let dist_dir = script_dir + '/../build/dist';
|
|
307
|
+
|
|
308
|
+
let success = await prepare(dist_dir);
|
|
309
|
+
if (!success)
|
|
310
|
+
return false;
|
|
311
|
+
|
|
312
|
+
execFileSync('npm', ['publish'], {
|
|
313
|
+
cwd: dist_dir,
|
|
314
|
+
stdio: 'inherit'
|
|
315
|
+
});
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
async function prepare(dist_dir) {
|
|
319
|
+
let snapshot_dir = snapshot();
|
|
287
320
|
|
|
288
|
-
let json = fs.readFileSync(root_dir + '/koffi/package.json', { encoding: 'utf-8' });
|
|
321
|
+
let json = fs.readFileSync(root_dir + '/src/koffi/package.json', { encoding: 'utf-8' });
|
|
289
322
|
let version = JSON.parse(json).version;
|
|
290
323
|
|
|
291
324
|
console.log('>> Version:', version);
|
|
@@ -296,7 +329,7 @@ async function pack() {
|
|
|
296
329
|
for (let suite in machine.builds) {
|
|
297
330
|
let build = machine.builds[suite];
|
|
298
331
|
|
|
299
|
-
let archive_filename = root_dir + `/koffi/build/qemu/${version}/koffi_${machine.platform}_${build.arch}.tar.gz`;
|
|
332
|
+
let archive_filename = root_dir + `/src/koffi/build/qemu/${version}/koffi_${machine.platform}_${build.arch}.tar.gz`;
|
|
300
333
|
|
|
301
334
|
if (fs.existsSync(archive_filename)) {
|
|
302
335
|
log(machine, `${suite} > Status`, chalk.bold.green(`[ok]`));
|
|
@@ -314,142 +347,183 @@ async function pack() {
|
|
|
314
347
|
}
|
|
315
348
|
|
|
316
349
|
let ready = ignore.size;
|
|
350
|
+
let artifacts = [];
|
|
317
351
|
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
}
|
|
322
|
-
|
|
323
|
-
success &= await start(false);
|
|
324
|
-
success &= await copy(machine => Object.values(machine.builds).map(build => build.directory));
|
|
325
|
-
|
|
326
|
-
console.log('>> Run build commands...');
|
|
327
|
-
await Promise.all(machines.map(async machine => {
|
|
328
|
-
if (ignore.has(machine))
|
|
329
|
-
return;
|
|
330
|
-
|
|
331
|
-
await Promise.all(Object.keys(machine.builds).map(async suite => {
|
|
332
|
-
let build = machine.builds[suite];
|
|
333
|
-
|
|
334
|
-
let cmd = build.build;
|
|
335
|
-
let cwd = build.directory + '/koffi';
|
|
336
|
-
|
|
337
|
-
let start = process.hrtime.bigint();
|
|
338
|
-
let ret = await exec_remote(machine, cmd, cwd);
|
|
339
|
-
let time = Number((process.hrtime.bigint() - start) / 1000000n);
|
|
340
|
-
|
|
341
|
-
if (ret.code == 0) {
|
|
342
|
-
log(machine, `${suite} > Build`, chalk.bold.green(`[${(time / 1000).toFixed(2)}s]`));
|
|
343
|
-
} else {
|
|
344
|
-
log(machine, `${suite} > Build`, chalk.bold.red('[error]'));
|
|
352
|
+
// Run machine commands
|
|
353
|
+
{
|
|
354
|
+
let success = true;
|
|
345
355
|
|
|
346
|
-
|
|
347
|
-
|
|
356
|
+
if (ready < machines.length) {
|
|
357
|
+
success &= await start(false);
|
|
358
|
+
success &= await upload(snapshot_dir, machine => Object.values(machine.builds).map(build => build.directory));
|
|
348
359
|
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
console.error(str);
|
|
354
|
-
}
|
|
355
|
-
if (ret.stderr) {
|
|
356
|
-
let str = ' '.repeat(align) + 'Standard error:\n' +
|
|
357
|
-
chalk.yellow(ret.stderr.replace(/^/gm, ' '.repeat(align + 4))) + '\n';
|
|
358
|
-
console.error(str);
|
|
359
|
-
}
|
|
360
|
+
console.log('>> Run build commands...');
|
|
361
|
+
await Promise.all(machines.map(async machine => {
|
|
362
|
+
if (ignore.has(machine))
|
|
363
|
+
return;
|
|
360
364
|
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
365
|
+
await Promise.all(Object.keys(machine.builds).map(async suite => {
|
|
366
|
+
let build = machine.builds[suite];
|
|
367
|
+
|
|
368
|
+
let cmd = build.build;
|
|
369
|
+
let cwd = build.directory + '/src/koffi';
|
|
370
|
+
|
|
371
|
+
let start = process.hrtime.bigint();
|
|
372
|
+
let ret = await exec_remote(machine, cmd, cwd);
|
|
373
|
+
let time = Number((process.hrtime.bigint() - start) / 1000000n);
|
|
374
|
+
|
|
375
|
+
if (ret.code == 0) {
|
|
376
|
+
log(machine, `${suite} > Build`, chalk.bold.green(`[${(time / 1000).toFixed(2)}s]`));
|
|
377
|
+
} else {
|
|
378
|
+
log(machine, `${suite} > Build`, chalk.bold.red('[error]'));
|
|
379
|
+
|
|
380
|
+
if (ret.stdout || ret.stderr)
|
|
381
|
+
console.error('');
|
|
382
|
+
|
|
383
|
+
let align = log.align + 9;
|
|
384
|
+
if (ret.stdout) {
|
|
385
|
+
let str = ' '.repeat(align) + 'Standard output:\n' +
|
|
386
|
+
chalk.yellow(ret.stdout.replace(/^/gm, ' '.repeat(align + 4))) + '\n';
|
|
387
|
+
console.error(str);
|
|
388
|
+
}
|
|
389
|
+
if (ret.stderr) {
|
|
390
|
+
let str = ' '.repeat(align) + 'Standard error:\n' +
|
|
391
|
+
chalk.yellow(ret.stderr.replace(/^/gm, ' '.repeat(align + 4))) + '\n';
|
|
392
|
+
console.error(str);
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
ignore.add(machine);
|
|
396
|
+
success = false;
|
|
397
|
+
}
|
|
398
|
+
}));
|
|
399
|
+
}));
|
|
400
|
+
}
|
|
366
401
|
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
402
|
+
console.log('>> Get build artifacts');
|
|
403
|
+
{
|
|
404
|
+
let build_dir = root_dir + '/src/koffi/build/qemu';
|
|
405
|
+
|
|
406
|
+
await Promise.all(machines.map(async machine => {
|
|
407
|
+
let copied = true;
|
|
408
|
+
|
|
409
|
+
await Promise.all(Object.keys(machine.builds).map(async suite => {
|
|
410
|
+
let build = machine.builds[suite];
|
|
411
|
+
|
|
412
|
+
let src_dir = build.directory + '/src/koffi/build';
|
|
413
|
+
let dest_dir = build_dir + `/${version}/koffi_${machine.platform}_${build.arch}`;
|
|
414
|
+
let dest_filename = dest_dir + '.tar.gz';
|
|
415
|
+
|
|
416
|
+
artifacts.push(dest_filename);
|
|
417
|
+
|
|
418
|
+
if (ignore.has(machine))
|
|
419
|
+
return;
|
|
420
|
+
|
|
421
|
+
unlink_recursive(dest_dir);
|
|
422
|
+
fs.mkdirSync(dest_dir, { mode: 0o755, recursive: true });
|
|
423
|
+
|
|
424
|
+
try {
|
|
425
|
+
await machine.ssh.getDirectory(dest_dir, src_dir, {
|
|
426
|
+
recursive: false,
|
|
427
|
+
concurrency: 4,
|
|
428
|
+
validate: filename => !path.basename(filename).match(/^v[0-9]+/)
|
|
429
|
+
});
|
|
430
|
+
|
|
431
|
+
tar.c({
|
|
432
|
+
gzip: true,
|
|
433
|
+
file: dest_filename,
|
|
434
|
+
sync: true,
|
|
435
|
+
cwd: dest_dir + '/..'
|
|
436
|
+
}, [path.basename(dest_dir)]);
|
|
437
|
+
} catch (err) {
|
|
438
|
+
ignore.add(machine);
|
|
439
|
+
success = false;
|
|
440
|
+
copied = false;
|
|
441
|
+
}
|
|
442
|
+
}));
|
|
370
443
|
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
if (basename !== version)
|
|
375
|
-
unlink_recursive(build_dir + '/' + basename);
|
|
376
|
-
}
|
|
444
|
+
let status = copied ? chalk.bold.green('[ok]') : chalk.bold.red('[error]');
|
|
445
|
+
log(machine, 'Pack', status);
|
|
446
|
+
}));
|
|
377
447
|
}
|
|
378
448
|
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
449
|
+
if (machines.some(machine => machine.started))
|
|
450
|
+
success &= await stop(false);
|
|
451
|
+
success &= (ignore.size == ready);
|
|
382
452
|
|
|
383
|
-
|
|
453
|
+
if (!success) {
|
|
454
|
+
console.log('');
|
|
455
|
+
console.log('>> Status: ' + chalk.bold.red('FAILED'));
|
|
456
|
+
return false;
|
|
457
|
+
}
|
|
458
|
+
}
|
|
384
459
|
|
|
385
|
-
|
|
386
|
-
|
|
460
|
+
console.log('>> Prepare NPM package');
|
|
461
|
+
{
|
|
462
|
+
let build_dir = dist_dir + '/src/koffi/build/' + version;
|
|
387
463
|
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
let dest_filename = dest_dir + '.tar.gz';
|
|
464
|
+
unlink_recursive(dist_dir);
|
|
465
|
+
fs.mkdirSync(dist_dir, { mode: 0o755, recursive: true });
|
|
391
466
|
|
|
392
|
-
|
|
393
|
-
|
|
467
|
+
copy_recursive(snapshot_dir, dist_dir);
|
|
468
|
+
fs.mkdirSync(build_dir, { mode: 0o755, recursive: true });
|
|
394
469
|
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
validate: filename => !path.basename(filename).match(/^v[0-9]+/)
|
|
400
|
-
});
|
|
401
|
-
|
|
402
|
-
tar.c({
|
|
403
|
-
gzip: true,
|
|
404
|
-
file: dest_filename,
|
|
405
|
-
sync: true,
|
|
406
|
-
cwd: dest_dir + '/..'
|
|
407
|
-
}, [path.basename(dest_dir)]);
|
|
408
|
-
} catch (err) {
|
|
409
|
-
ignore.add(machine);
|
|
410
|
-
success = false;
|
|
411
|
-
copied = false;
|
|
412
|
-
}
|
|
413
|
-
}));
|
|
470
|
+
for (let artifact of artifacts) {
|
|
471
|
+
let dest_filename = build_dir + '/' + path.basename(artifact);
|
|
472
|
+
fs.copyFileSync(artifact, dest_filename);
|
|
473
|
+
}
|
|
414
474
|
|
|
415
|
-
|
|
416
|
-
log(machine, 'Pack', status);
|
|
417
|
-
}));
|
|
418
|
-
}
|
|
475
|
+
let pkg = JSON.parse(json);
|
|
419
476
|
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
477
|
+
pkg.main = "src/koffi/src/index.js";
|
|
478
|
+
pkg.scripts = {
|
|
479
|
+
install: "cnoke --prebuild -d src/koffi",
|
|
480
|
+
test: "node src/koffi/qemu/qemu.js test"
|
|
481
|
+
};
|
|
482
|
+
pkg.cnoke.prebuild = "src/koffi/" + pkg.cnoke.prebuild;
|
|
483
|
+
pkg.cnoke.require = "./src/koffi/build/koffi.node";
|
|
423
484
|
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
} else {
|
|
428
|
-
console.log('>> Status: ' + chalk.bold.red('FAILED'));
|
|
485
|
+
fs.writeFileSync(dist_dir + '/package.json', JSON.stringify(pkg, null, 4));
|
|
486
|
+
fs.unlinkSync(dist_dir + '/src/koffi/package.json', '');
|
|
487
|
+
fs.unlinkSync(dist_dir + '/src/koffi/.gitignore', '');
|
|
429
488
|
}
|
|
430
489
|
|
|
431
|
-
return
|
|
490
|
+
return true;
|
|
432
491
|
}
|
|
433
492
|
|
|
434
|
-
|
|
435
|
-
let
|
|
493
|
+
function snapshot() {
|
|
494
|
+
let snapshot_dir = script_dir + '/../build/snapshot';
|
|
436
495
|
|
|
437
|
-
|
|
438
|
-
|
|
496
|
+
unlink_recursive(snapshot_dir);
|
|
497
|
+
fs.mkdirSync(snapshot_dir, { mode: 0o755, recursive: true });
|
|
439
498
|
|
|
440
499
|
console.log('>> Snapshot code...');
|
|
441
500
|
copy_recursive(root_dir, snapshot_dir, filename => {
|
|
442
|
-
let
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
501
|
+
let parts = filename.split(/[\/\\]/);
|
|
502
|
+
|
|
503
|
+
if (parts[0] == 'src' && parts[1] == 'core') {
|
|
504
|
+
return parts[2] == null || parts[2] == 'libcc';
|
|
505
|
+
} else if (parts[0] == 'src') {
|
|
506
|
+
return parts[1] == null || parts[1] == 'cnoke' ||
|
|
507
|
+
parts[1] == 'koffi';
|
|
508
|
+
} else if (parts[0] == 'vendor') {
|
|
509
|
+
return parts[1] == null || parts[1] == 'brotli' ||
|
|
510
|
+
parts[1] == 'dragonbox' ||
|
|
511
|
+
parts[1] == 'miniz' ||
|
|
512
|
+
parts[1] == 'node-addon-api' ||
|
|
513
|
+
parts[1] == 'raylib' ||
|
|
514
|
+
parts[1] == 'sqlite3mc';
|
|
515
|
+
} else {
|
|
516
|
+
return false;
|
|
517
|
+
}
|
|
450
518
|
});
|
|
451
519
|
|
|
452
|
-
|
|
520
|
+
return snapshot_dir;
|
|
521
|
+
}
|
|
522
|
+
|
|
523
|
+
async function upload(snapshot_dir, func) {
|
|
524
|
+
let success = true;
|
|
525
|
+
|
|
526
|
+
console.log('>> Upload source code...');
|
|
453
527
|
await Promise.all(machines.map(async machine => {
|
|
454
528
|
if (ignore.has(machine))
|
|
455
529
|
return;
|
|
@@ -489,10 +563,12 @@ async function copy(func) {
|
|
|
489
563
|
}
|
|
490
564
|
|
|
491
565
|
async function test() {
|
|
566
|
+
let snapshot_dir = snapshot();
|
|
567
|
+
|
|
492
568
|
let success = true;
|
|
493
569
|
|
|
494
570
|
success &= await start(false);
|
|
495
|
-
success &= await
|
|
571
|
+
success &= await upload(snapshot_dir, machine => Object.values(machine.tests).map(test => test.directory));
|
|
496
572
|
|
|
497
573
|
console.log('>> Run test commands...');
|
|
498
574
|
await Promise.all(machines.map(async machine => {
|
|
@@ -508,7 +584,7 @@ async function test() {
|
|
|
508
584
|
|
|
509
585
|
for (let name in commands) {
|
|
510
586
|
let cmd = commands[name];
|
|
511
|
-
let cwd = test.directory + '/koffi';
|
|
587
|
+
let cwd = test.directory + '/src/koffi';
|
|
512
588
|
|
|
513
589
|
let start = process.hrtime.bigint();
|
|
514
590
|
let ret = await exec_remote(machine, cmd, cwd);
|
|
@@ -651,7 +727,7 @@ async function reset() {
|
|
|
651
727
|
return;
|
|
652
728
|
|
|
653
729
|
let dirname = `qemu/${machine.key}`;
|
|
654
|
-
let disk = dirname + '/disk
|
|
730
|
+
let disk = dirname + '/' + machine.qemu.disk;
|
|
655
731
|
|
|
656
732
|
if (!fs.existsSync(dirname)) {
|
|
657
733
|
log(machine, 'Missing files', chalk.bold.gray('[ignore]'));
|
|
@@ -706,20 +782,30 @@ function check_qemu() {
|
|
|
706
782
|
}
|
|
707
783
|
|
|
708
784
|
function copy_recursive(src, dest, validate = filename => true) {
|
|
709
|
-
let
|
|
785
|
+
let proc = spawnSync('git', ['ls-files', '-i', '-o', '--exclude-standard', '--directory'], { cwd: src });
|
|
786
|
+
let ignored = new Set(proc.stdout.toString().split('\n').map(it => it.trim().replace(/[\\\/+]$/, '')).filter(it => it));
|
|
710
787
|
|
|
711
|
-
|
|
712
|
-
let filename = path.join(src, entry.name);
|
|
713
|
-
let destname = path.join(dest, entry.name);
|
|
788
|
+
recurse(src, dest, '');
|
|
714
789
|
|
|
715
|
-
|
|
716
|
-
|
|
790
|
+
function recurse(src, dest, nice) {
|
|
791
|
+
let entries = fs.readdirSync(src, { withFileTypes: true });
|
|
792
|
+
|
|
793
|
+
for (let entry of entries) {
|
|
794
|
+
let src_filename = path.join(src, entry.name);
|
|
795
|
+
let dest_filename = path.join(dest, entry.name);
|
|
796
|
+
let filename = path.join(nice, entry.name);
|
|
717
797
|
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
798
|
+
if (ignored.has(filename))
|
|
799
|
+
continue;
|
|
800
|
+
if (!validate(filename))
|
|
801
|
+
continue;
|
|
802
|
+
|
|
803
|
+
if (entry.isDirectory()) {
|
|
804
|
+
fs.mkdirSync(dest_filename, { mode: 0o755 });
|
|
805
|
+
recurse(src_filename, dest_filename, filename);
|
|
806
|
+
} else if (entry.isFile()) {
|
|
807
|
+
fs.copyFileSync(src_filename, dest_filename);
|
|
808
|
+
}
|
|
723
809
|
}
|
|
724
810
|
}
|
|
725
811
|
}
|
|
@@ -8,6 +8,8 @@
|
|
|
8
8
|
"arguments": ["-M", "virt", "-cpu", "cortex-a15", "-m", "1G", "-smp", 2, "-kernel", "vmlinuz-5.10.0-12-armmp-lpae", "-initrd", "initrd.img-5.10.0-12-armmp-lpae", "-append", "root=/dev/vda2 apparmor=0", "-drive", "if=none,file=disk.qcow2,format=qcow2,id=hd", "-device", "virtio-blk-device,drive=hd", "-netdev", "user,id=mynet,hostfwd=tcp::22201-:22", "-device", "virtio-net-device,netdev=mynet", "-vnc", "127.0.0.1:11"],
|
|
9
9
|
"version": 3,
|
|
10
10
|
|
|
11
|
+
"disk": "disk.qcow2",
|
|
12
|
+
|
|
11
13
|
"ssh_port": 22201,
|
|
12
14
|
"vnc_port": 5911,
|
|
13
15
|
|
|
@@ -51,6 +53,8 @@
|
|
|
51
53
|
"arguments": ["-M", "virt", "-cpu", "cortex-a53", "-m", "1G", "-smp", 2, "-kernel", "vmlinuz-5.10.0-12-arm64", "-initrd", "initrd.img-5.10.0-12-arm64", "-append", "root=/dev/vda2 apparmor=0", "-drive", "if=none,file=disk.qcow2,format=qcow2,id=hd", "-device", "virtio-blk-device,drive=hd", "-netdev", "user,id=mynet,hostfwd=tcp::22202-:22", "-device", "virtio-net-device,netdev=mynet", "-vnc", "127.0.0.1:12"],
|
|
52
54
|
"version": 3,
|
|
53
55
|
|
|
56
|
+
"disk": "disk.qcow2",
|
|
57
|
+
|
|
54
58
|
"ssh_port": 22202,
|
|
55
59
|
"vnc_port": 5912,
|
|
56
60
|
|
|
@@ -94,6 +98,8 @@
|
|
|
94
98
|
"arguments": ["-cpu", "max", "-m", "1G", "-smp", 2, "-kernel", "vmlinuz-5.10.0-12-686-pae", "-initrd", "initrd.img-5.10.0-12-686-pae", "-append", "root=/dev/sda1 apparmor=0", "-hda", "disk.qcow2", "-netdev", "user,id=mynet,hostfwd=tcp::22203-:22", "-device", "e1000,netdev=mynet", "-vnc", "127.0.0.1:13"],
|
|
95
99
|
"version": 3,
|
|
96
100
|
|
|
101
|
+
"disk": "disk.qcow2",
|
|
102
|
+
|
|
97
103
|
"ssh_port": 22203,
|
|
98
104
|
"vnc_port": 5913,
|
|
99
105
|
|
|
@@ -137,6 +143,8 @@
|
|
|
137
143
|
"arguments": ["-m", "1G", "-smp", 2, "-kernel", "vmlinuz-5.10.0-12-amd64", "-initrd", "initrd.img-5.10.0-12-amd64", "-append", "root=/dev/sda1 apparmor=0", "-hda", "disk.qcow2", "-netdev", "user,id=mynet,hostfwd=tcp::22204-:22", "-device", "e1000,netdev=mynet", "-vnc", "127.0.0.1:14"],
|
|
138
144
|
"version": 3,
|
|
139
145
|
|
|
146
|
+
"disk": "disk.qcow2",
|
|
147
|
+
|
|
140
148
|
"ssh_port": 22204,
|
|
141
149
|
"vnc_port": 5914,
|
|
142
150
|
|
|
@@ -180,6 +188,8 @@
|
|
|
180
188
|
"arguments": ["-m", "3G", "-smp", 4, "-rtc", "clock=host,base=localtime", "-bios", "bios.bin", "-hda", "disk.qcow2", "-netdev", "user,id=mynet,hostfwd=tcp::22205-:22", "-device", "e1000,netdev=mynet", "-vga", "std", "-device", "qemu-xhci", "-device", "usb-tablet", "-vnc", "127.0.0.1:15"],
|
|
181
189
|
"version": 11,
|
|
182
190
|
|
|
191
|
+
"disk": "disk.qcow2",
|
|
192
|
+
|
|
183
193
|
"ssh_port": 22205,
|
|
184
194
|
"vnc_port": 5915,
|
|
185
195
|
|
|
@@ -249,6 +259,8 @@
|
|
|
249
259
|
"arguments": ["-m", "1G", "-smp", 2, "-hda", "disk.qcow2", "-netdev", "user,id=mynet,hostfwd=tcp::22206-:22", "-device", "e1000,netdev=mynet", "-vnc", "127.0.0.1:16"],
|
|
250
260
|
"version": 3,
|
|
251
261
|
|
|
262
|
+
"disk": "disk.qcow2",
|
|
263
|
+
|
|
252
264
|
"ssh_port": 22206,
|
|
253
265
|
"vnc_port": 5916,
|
|
254
266
|
|
|
@@ -292,6 +304,8 @@
|
|
|
292
304
|
"arguments": ["-m", "1G", "-smp", 2, "-hda", "disk.qcow2", "-netdev", "user,id=mynet,hostfwd=tcp::22207-:22", "-device", "e1000,netdev=mynet", "-vnc", "127.0.0.1:17"],
|
|
293
305
|
"version": 3,
|
|
294
306
|
|
|
307
|
+
"disk": "disk.qcow2",
|
|
308
|
+
|
|
295
309
|
"ssh_port": 22207,
|
|
296
310
|
"vnc_port": 5917,
|
|
297
311
|
|
|
@@ -335,6 +349,8 @@
|
|
|
335
349
|
"arguments": ["-M", "virt", "-cpu", "cortex-a53", "-m", "1G", "-smp", 2, "-drive", "if=pflash,format=raw,file=QEMU_EFI.img", "-drive", "if=pflash,file=varstore.img", "-drive", "if=virtio,file=disk.qcow2,format=qcow2", "-netdev", "user,id=mynet,hostfwd=tcp::22208-:22", "-device", "virtio-net-device,netdev=mynet", "-vnc", "127.0.0.1:18"],
|
|
336
350
|
"version": 3,
|
|
337
351
|
|
|
352
|
+
"disk": "disk.qcow2",
|
|
353
|
+
|
|
338
354
|
"ssh_port": 22208,
|
|
339
355
|
"vnc_port": 5918,
|
|
340
356
|
|
|
@@ -378,6 +394,8 @@
|
|
|
378
394
|
"arguments": ["-m", "3G", "-machine", "q35", "-smp", 2, "-cpu", "Penryn,vendor=GenuineIntel,kvm=on,+sse3,+sse4.2,+aes,+xsave,+avx,+xsaveopt,+xsavec,+xgetbv1,+avx2,+bmi2,+smep,+bmi1,+fma,+movbe,+invtsc", "-device", "isa-applesmc,osk=ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc", "-smbios", "type=2", "-drive", "if=pflash,format=raw,readonly=on,file=OVMF_CODE.fd", "-drive", "if=pflash,format=raw,file=OVMF_VARS-1024x768.fd", "-vga", "qxl", "-device", "ich9-intel-hda", "-device", "hda-output", "-usb", "-device", "usb-kbd", "-device", "usb-tablet", "-netdev", "user,id=net0,hostfwd=tcp::22209-:22", "-device", "e1000-82545em,netdev=net0,id=net0,mac=52:54:00:c9:18:27", "-device", "ich9-ahci,id=sata", "-drive", "id=ESP,if=none,format=qcow2,file=ESP.qcow2", "-device", "ide-hd,bus=sata.2,drive=ESP", "-drive", "id=SystemDisk,if=none,file=macOS.qcow2", "-device", "ide-hd,bus=sata.4,drive=SystemDisk", "-vnc", "127.0.0.1:19"],
|
|
379
395
|
"version": 2,
|
|
380
396
|
|
|
397
|
+
"disk": "macOS.qcow2",
|
|
398
|
+
|
|
381
399
|
"ssh_port": 22209,
|
|
382
400
|
"vnc_port": 5919,
|
|
383
401
|
|
|
@@ -426,6 +444,8 @@
|
|
|
426
444
|
"arguments": ["-m", "1G", "-smp", 2, "-hda", "disk.qcow2", "-netdev", "user,id=mynet,hostfwd=tcp::22210-:22", "-device", "e1000,netdev=mynet", "-vnc", "127.0.0.1:20"],
|
|
427
445
|
"version": 2,
|
|
428
446
|
|
|
447
|
+
"disk": "disk.qcow2",
|
|
448
|
+
|
|
429
449
|
"ssh_port": 22210,
|
|
430
450
|
"vnc_port": 5920,
|
|
431
451
|
|
|
@@ -469,6 +489,8 @@
|
|
|
469
489
|
"arguments": ["-m", "1G", "-smp", 2, "-hda", "disk.qcow2", "-netdev", "user,id=mynet,hostfwd=tcp::22211-:22", "-device", "e1000,netdev=mynet", "-vnc", "127.0.0.1:21"],
|
|
470
490
|
"version": 3,
|
|
471
491
|
|
|
492
|
+
"disk": "disk.qcow2",
|
|
493
|
+
|
|
472
494
|
"ssh_port": 22211,
|
|
473
495
|
"vnc_port": 5921,
|
|
474
496
|
|
|
@@ -512,6 +534,8 @@
|
|
|
512
534
|
"arguments": ["-machine", "virt", "-cpu", "rv64", "-m", "1G", "-smp", 2, "-device", "virtio-blk-device,drive=hd", "-drive", "file=disk.qcow2,if=none,id=hd", "-device", "virtio-net-device,netdev=net", "-netdev", "user,id=net,hostfwd=tcp::22212-:22", "-bios", "fw_jump.elf", "-kernel", "uboot.elf", "-append", "root=LABEL=rootfs console=ttyS0", "-vnc", "127.0.0.1:22"],
|
|
513
535
|
"version": 1,
|
|
514
536
|
|
|
537
|
+
"disk": "disk.qcow2",
|
|
538
|
+
|
|
515
539
|
"ssh_port": 22212,
|
|
516
540
|
"vnc_port": 5912,
|
|
517
541
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|