-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Build windows DLLs from vendor directory #45
Conversation
I'm guessing getting rid of vcpkg here is difficult? also, since we have a specific version pinned here, we should remove https://github.com/status-im/nim-rocksdb/tree/master/rocksdb/lib/headers and instead use the headers from the submodule (and make sure we can easily regenerate them - https://github.com/arnetheduck/nim-sqlite3-abi/blob/master/update.sh has a script for this purpose for example |
Yes, vcpkg is the easiest way to build RocksDB on windows and this is the way cheatfate did it as well. Doing it manually using cmake would take more time. Adding vcpkg to your project as a submodule is recommended to pin the version of the tool being built. The RocksDB project provides a combined header file here https://github.com/facebook/rocksdb/blob/main/include/rocksdb/c.h which I guess we could use but the difficult part is that there were some manual modifications at the top of the file at and below '#ifdef C2NIM'. We would probably need to copy the header file into the project and then modify it on the fly then generate the wrapper using c2nim. I'm not sure exactly why the modifications are required. |
@arnetheduck Even the librocksdb.nim wrapper has some manual modifications which makes it hard to automate regenerating it. My question would be do you think its worth spending the time on it now or should I just create an issue so we can come back to it? |
I suspect it's because of an old c2nim version being used and/or to get the correct |
can you bump |
Ok, I'll try updating the header file and look at which parts can be automated. By the way we won't be able to automatically update the vcpkg rocksdb version which is used for the windows build because that github project doesn't have RocksDb specific git tags that we can point to. The update process would be as follows:
|
Yes, will do. |
Merging this for now. Additional improvements can go in another PR. |
This PR completes the following issue: #44
Changes included in the PR: