pcm icon indicating copy to clipboard operation
pcm copied to clipboard

Add dependency manager

Open artiomn opened this issue 1 year ago • 9 comments

Currently only SIMDJSON is used as a submodule. But in the future there may be other dependencies (for example, a third-party HTTP server or exclude getopt from the codebase). Submodules are very inconvenient, not very effective, and tie the project to a version control system, which should not be the case.

Probably better solution will be use dependency manager. CPM is lightweight and written in pure CMake.

artiomn avatar Jul 17 '24 19:07 artiomn

a good idea. Will try it when we will have more dependencies to justify it and improve ROI

rdementi avatar Jul 19 '24 07:07 rdementi

Besides CPM, there are Hunter and Conan.io . But Conan.io in my opinion is not very convenient. I didn't use Hunter, probably it's more flexible than CPM, but CPM written in pure CMake and mostly satisfies my requirements.

artiomn avatar Jul 19 '24 14:07 artiomn

@rdementi, @opcm, which would you prefer to use?

artiomn avatar Jul 31 '24 14:07 artiomn

I can try to integrate CPM, if you want.

artiomn avatar Jul 31 '24 14:07 artiomn

@artiomn rdementi is supposed to be on vacation this week, don't make him work so hard ;-)

ogbrugge-work avatar Jul 31 '24 14:07 ogbrugge-work

@artiomn rdementi is supposed to be on vacation this week, don't make him work so hard ;-)

Ok, I'm waiting. :-)

artiomn avatar Aug 02 '24 21:08 artiomn

Thanks for volunteering!

I discussed it with @twillhal . Adding cmake/CPM.cmake would potentially require an internal review and approval. We will do it but unfortunately I can't give a timeline.

rdementi avatar Aug 08 '24 11:08 rdementi

I can do this, if you approve this change.

artiomn avatar Aug 12 '24 20:08 artiomn

adding CPM.cmake has been approved. It is now in the master branch: https://github.com/intel/pcm/blob/master/cmake/CPM.cmake

rdementi avatar Sep 16 '24 07:09 rdementi