feat: use cmake
instead of node-gyp
#37
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description of change
Use
cmake
viacmake-js
to buildllama.cpp
from source instead ofnode-gyp
.cmake-js
has multiple advantages overnode-gyp
fornode-llama-cpp
:llama.cpp
itself usescmake
, so usingcmake
here will be better align withllama.cpp
and will be able to support all of its featurescmake
doesn't use python, so there won't be any need to mess with python installations anymore just to compilellama.cpp
from sourcecmake
has less dependencies, thus making it more practical to usecmake
is not installed on the local machine, thecmake
binary will be downloaded to an internal directory sonode-llama-cpp
can use it without even having it installed.Since the dependencies of
node-gyp
cover the dependencies ofcmake
, and this PR fallbacks to downloadingcmake
in case it's not installed on the user's machine, this is not a breaking change, the version ofnode-llama-cpp
can be bumped by only a minor version.Pull-Request Checklist
master
branchnpm run format
to apply prettier formattingnpm run test
passes with this changeFixes #0000