-
Notifications
You must be signed in to change notification settings - Fork 1
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
Join forces? #16
Comments
For the love of god, please join forces :D I'm going crazy trying to integrate libcurl in my build... I would also like to help if I can, but I'm a complete beginner to Bazel and I'm afraid I would be utterly useless. |
I haven't tried yet, because of this line in the documentation:
I want to make the build as hermetic as possible. But if I find no other solution, I will try. I've already had to sacrifice a lot in terms of hermeticity for other reasons (and probably also because I don't know enough about Bazel), so what's one more library that I have to install locally :) |
As I think I will need Tensorflow at some point down the road, I'm also considering just adding it now just for their build of curl haha. |
Aha! Yeah, for Linux. The thought there was that, for OSs with a built-in package manager containing curl, or for OSs that bundle curl, you probably just want to add the library as a dependency rather than bundling it. I agree that's not hermetic, but it does seem like what most people will want for usage and distribution, and what's being done for a fair number of other things. (Conversely, if that seems wrong to you, please do let me know!) (FWIW, (as in the readme) I'd watch out for the TensorFlow curl build. It was seeing a bunch of memory-error-inducing misconfiguration in there that induced me to write my own.) |
I can't control what library is bundled with which OS, or even which OS devs might want to build my project in. Maybe I'm just not experienced enough in C++ development, but I die a little every time I'm following some build instructions and it just doesn't work, because I have some slight environmental difference with the guy who wrote the guide. Thanks for the warning about the TensorFlow curl build, I will definitely keep it in mind if I see some weird behavior! |
I hear ya, but note that we do bundle on (supported) platforms that don't reliably provide. I still really think the move is to link against reliably-OS-provided libraries when available, and bundle otherwise--especially for things like libcurl that require lots of OS specific configuration to build and are widely used by many other tools. (IIRC, one key, non-obvious issue with the TF one is that it hardcodes some 64-bit sizesofs, leading to problematic access on 32 bit, e.g., mobile.) |
I think this is something I don't understand in general: if the configuration is OS specific and tied to the library bundled with the OS I'm building on, how do I build cross platform (e.g. building the application on one platform to be run on another one) ? I guess it's a difficulty inherent to OS specific 'things' like networking. A standard abstraction would be really cool there. (Thanks for the complementary information on the TF build, thankfully it shouldn't be a problem for me as I don't intend on supporting 32 bit systems for my application) |
Ours would condition on your target platform! (More docs about the standard Bazel abstraction here.) So if you were building for, say, Android (from say Linux) it wouldn't use the apt-get stuff, but rather build and bundle libcurl for Android. (Last I tried, the rules_foreign_cc bridge into cmake had exactly the problem you were worried about--hence the top comment.) |
Hey guys!
I was just spinning up a set of rules to make it easy to make HTTPs requests from C++ in Bazel, and I was wondering if you'd want to join forces.
The trouble with the rules_foreign_cc cmake stuff is that it doesn't hold up well to cross compiling, or generally picking up Bazel settings in my experience. Here's the new repo if you're curious and want to take a look https://github.com/hedronvision/bazel-make-cc-https-easy
Cheers,
Chris
The text was updated successfully, but these errors were encountered: