HBPVIS / ZeroEQ

Cross-platform C++ library for fast binary and REST messaging
https://hbpvis.github.io/
Other
41 stars 25 forks source link

git_external for ccp-netlib #196

Closed adevress closed 7 years ago

adevress commented 7 years ago

Hi Guys,

I was upgrading the nix builds for ZeroEQ and I have seen that you sneak-in one git_external dependency.

git_external(${COMMON_SOURCE_DIR}/cppnetlib https://github.com/BlueBrain/cpp-netlib 0.11-bbp)

Please, could you provide a way to disable that and build without git_external, by using a cppnetlib installation path manually provided through CMAKE_PREFIX_PATH like it works for subprojects.

Like I already said, no decent package manager would accept a software to download random staff during configure phase. This is a blocker for me to Upgrade ZeroEQ, and the upgrade is necessary for other package due to API changes.

Cheers, Adrien

rdumusc commented 7 years ago

Hi Adrien, In general, subprojects are just for convenience, you can turn off the feature with -DDISABLE_SUBPROJECTS=ON or selectively disable one of them using for instance -DSUBPROJECT_CPPNETLIB=OFF. For the case of cppnetlib, I'm afraid the BBP branch has some required changes and a standard package won't work. I think the change is to be able to access the port of the socket when using an OS-chosen port. @tribal-tec should try to get this merged upstream at some point? How could we move toward a solution to use a standard cppnetlib package?

adevress commented 7 years ago

@rdumusc I'm fine even to ship the BBP cppnetlib. My main issue is with the CMakeLists.txt trying to download it and with no way to disable that.

eile commented 7 years ago

Is using a git submodule ok?

tribal-tec commented 7 years ago

The changes made on the 0.11 branch are for review. No time planned yet to finish this.

How do you deal with the git_external for CMake/common? Same problem there. As @eile mentioned, we can offer doing a gitmodule instead if that works for you.

adevress commented 7 years ago

@eile yes, git submodule are good for me. It is done during the git clone phase or can just be packed as a tarball.

@tribal-tec I have an ugly hack for it that I would like to not generalize everywhere.

Git submodule would be a good solution for me. For now, I have added a disable flag in the pull request I sent you