-
Notifications
You must be signed in to change notification settings - Fork 401
Add Conan package manager to the buildsystem #648
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
Conversation
I have created the pull-requests to include muparserx and llvm-openmp in conan-center:
I am still waiting to be included in the early access program. That would trigger the CI on those pull requests and allow to do the final merge. |
After some weeks I've been accepted in the Early Access Program and both Muparserx and llvm-openmp have passed the CI builds. So, right now we are waiting them to do the merge. |
Muparserx is already a recipe in Conan! |
I have already done the pull-request to merge the recipe for Thrust. It is under review. Regarding llvm-openmp, although the PR was approved and ready to be merged, Conan people were concerned about introducing a package belonging to a framework (llvm in this case). They are deciding wether they merge this PR or they use another approach. They'll tell us something soon. |
cb0698f
to
d2bc334
Compare
This is now ready for review. Every recipe is in conan-center now. I have also added catch2 dependency for C++ testing. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
GREAT!
The changes look good. (recent numpy problem aside)
I'm gonna test this manually.
…addon. - Removing unneeded cmake coded regarding third party libraries. - Removing unneeded distribution of third party libraries. - Fixes to make travis work. Muparserx fPIC and conan installation for standalone build.
…s and disable warning
…instead of downloading. Removed hack to avoid deprecation warning
Summary
Introduce Conan as a package manager for C++
Details and comments
Conan is a package manager for C++ (https://conan.io/). The idea is to use Conan to manage all external dependencies so that a user compiling doesn't have to worry about having the right library installed in their system.
The commands to build will be the same so no modifications to the build process (besides having conan installed).
Right now, depending on options at build time, we can use these packages:
nlohmann_json
spdlog
openblas
tbb
muparserx
thrust
omp (Apple)
The first four are already available as packages in conan repositories and can be used right now. The last three, on the other hand, has to be uploaded to conan-center and approved by conan to be used, so right now the build WILL FAIL. I'll initiate that process as soon as possible.
There are some other dependencies that cannot be set up through Conan, like CUDA that has to be installed beforehand or other system libraries like threads and dl.
Things to do:
In the future we will check the possibility of including the toolchain as a dependency.
Fixes #325