-
Notifications
You must be signed in to change notification settings - Fork 5
RocksDB/5.8 #92
Comments
Hello, I've been having some issues during the
You may check out the whole code here. The error that happens during the linking follows.
I naively tried to add
with little hope for it to succeed: because it is a static library being built it is CMake when building the sample that needs to have this info, not while building RocksDB itself. The line just above that, trying to set fpic, is because I had issues when attempting a shared library build. Is there a more considerate way to enforce this for shared libraries? Thanks |
Hi Giorgio! If RocksDB needs to link with pthread in linux, I would add to my RocksDB recipe: def package_info(self):
self.cpp_info.libs = ["rocksdb"]
if self.settings.os == "Linux":
self.cpp_info.libs.append("pthread") Consumers will automatically get the linking to pthread, so they don't need to remember to add it manually. Is this what you are looking for? The info from Please tell me if this helps. Thanks for the feedback! |
Thanks James! It looks like it fixed that. Actually, I think those are optional dependencies, but the Makefile finds them on my workstation and tries to pull them in, it then fails at link time (just like it happened with pthread, because they're not being referenced by Conan). So the question is, how do you make sure that your build environment is clean? I suppose you just let the CI server do the job, or you have some other suggested path for local development? Another unrelated question: RocksDB requires C++11. Right now I've been setting it like this
Is there a way to set this in the conanfile.py? Thanks for the help |
Hi Giorgio!
That is a very good question. Typically in CI it is common to have a totally clean environment, which can be done at the job level, installing conan each time in a new enviroment, or if usin the same installed conan, you can set a new CONAN_USER_HOME for each execution pointing to a temporary folder, for example. However, that doesn't remove the problem of dependencies that come at the system level and build systems that might locate them and link them. There might be different approaches:
What you are setting is Cheers! |
Done via conan-io/conan-center-index#1389 |
RocksDB: a library that provides an embeddable, persistent key-value store for fast storage.
I just got to know Conan, I'm checking it out for dependencies in this project of mine: ProfaneDB, and RocksDB is one of the dependencies.
I'll see what I can do and ask for help here if something doesn't work!
I gave a quick look and am quite sure nobody packaged RocksDB already, let me know if that's not the case!
The text was updated successfully, but these errors were encountered: