Following the discussion in D112753, this moves the HTTPClient from Support to Debuginfod library so that tools depending on Support do not automatically depend on Curl as well. This also removes HTTPClient::initialize() and HTTPClient::cleanup() from InitLLVM so these steps should be implemented by user tools instead.
Details
Diff Detail
Event Timeline
BTW, for a future ticket: having curl enabled without first checking to see if it is installed creates builds failures on non-Linux hosts. OK, yes, it can be disabled with a cmake argument, but it would be better if the extra cmake argument wasn't needed. A warning at cmake configure time that says what features will be missing without curl is probably a good idea as well.
Thanks, the configuration step does check if curl is installed first before trying to build with it. Does this not work for your build? And does D115131 solve the problem?
I don't see how this will resolve my issue. I'll start a new thread on llvm-dev. Don't let me block this review.
Thanks for the comments. I'm watching out for any buildbot failures on 0e0f1b28fce841b077228fa23356b1ae38844ae2. If there are none then I will commit D115131 later today.
Moving the dependency to another library doesn't help in the case of DLLVM_BUILD_LLVM_DYLIB=ON, because libLLVMDebuginfod is included in libLLVM.so. Are there still plans to make the libcurl dependency off by default?
I think we should consider it, toolchain vendors who want to include debuginfod in their distribution can still enable it manually, but we'll avoid the accidental dependency for everyone else.
This should be updated as well.