Skip to content
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

Release new version with lastest LevelDB release #107

Open
albertsteckermeier opened this issue Mar 8, 2020 · 3 comments
Open

Release new version with lastest LevelDB release #107

albertsteckermeier opened this issue Mar 8, 2020 · 3 comments

Comments

@albertsteckermeier
Copy link

I'm currently trying to build a Windows DLL for this library that doesn't require any Microsoft Visual C++ Redistributable to be installed. Since it seemed harder to build this for the old version of LevelDB I built the native binaries right away with the latest LevelDB release 1.22. I could make my own release but it's a hassle and having a new 1.9 release with the current LevelDB version would probably help everyone.

Can you guys create a new release? I'd be happy to support and could even provide you with pre-built binaries for all the operating systems.

If you want to build the binaries yourself you can use the latest forks I've provided here.

  • Snappy 1.1.8 (branch 1.1.8_leveldbjni)
    • Build for POSIX using: cmake . && make
    • Build for Windows with Visual Studio 2019: cmake -G "Visual Studio 16 2019" -A x64 .
  • LevelDB 1.22 (branch 1.22_leveldbjni)
    • Already includes the patch as well as still relevant changes from chirino/leveldb
    • Build for POSIX using: cmake -DCMAKE_BUILD_TYPE=Release . && cmake --build .
    • Build for Windows with Visual Studio 2019: cmake -G "Visual Studio 16 2019" -A x64 .
  • Build all Windows binaries in Visual Studio using Right Click on Solution > Properties > C/C++ > Runtime Library > Multi-Threaded (/MT) instead of Multi-Threaded DLL (/MT) to avoid dependency on Microsoft Visual C++ Redistributable

Let me know in case you need further input.

Cheers,
Albert

@ajsutton
Copy link

If you're still around, I've been working to get a more recent build of leveldbjni working and with better platform support. So far I have Linux x86_64, Mac x86_64 and Mac aarch64 as fully automated builds in CircleCI (https://github.com/ConsenSys/leveldbjni-native) but it still uses the old leveldb and I haven't managed to get a Windows build working at all. I'd love some help if you still remember the details.

Will try and test out your branches of updated snappy and leveldb on Linux and Mac soon too. Thanks for sharing.

@ajsutton
Copy link

So one thing I do notice with these branches is that when building leveldb, it fails to find snappy so I don't think it's building a snappy enabled version of leveldb. That seems to be true on Linux, Mac and Windows.

And on Windows it would be really helpful to know if there's a way to build the actual leveldbjni native library from the command line (and with a recent visual studio).

@ajsutton
Copy link

Ok, managed to get snappy found on Mac and Linux by setting some env vars - probably not the "right" way to do it with cmake but effective:

CXXFLAGS="${CXXFLAGS:-} -I${BUILD_DIR}/snappy/" \
  LDFLAGS="${LDFLAGS:-} -L${BUILD_DIR}/snappy/ -lstdc++" \
  cmake ...

Consensys/leveldbjni-native#2 has the changes to build these new branches for Mac and Linux.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants