Comments (9)
Ah, maybe I didn't express myself clearly:
Instead of using
Lines 125 to 134 in 0be1390
I'd like you to use https://github.com/bazelbuild/bazel/blob/master/tools/build_defs/repo/git.bzl rules instead, so it is easier to choose the version of boost to build against. In the beginning you hosted your own tarball of boost, they nowadays seem at least to also ship it in an official location too, so it has already gotten better.
It might still be nice to say that a project uses "Boost::foo at commit 1234abcd and Boost::bar at commit 5678ef90" instead of having the full boost tarball loaded all the time, but that's maybe not as important nowadays.
from rules_boost.
Whoops, my bad! That closes:
line was a typo :(
from rules_boost.
Is this still something people are interested in?
Modularized boost has a nice layout and actually results in simpler rules, but the submodule init seems way too slow...
from rules_boost.
Is mixing different versions of Boost modules even desirable? I don't think downloading time is an issue as you're unlikely to do that often, but I don't really see any value in not downloading the whole tarball for that exact same reason.
from rules_boost.
Yeah, picking and choosing different versions of different boost libraries doesn't seem all that desirable. If we had the modularized build, it would be easy to create your own git repo with the submodules pointing to different places if you really wanted to.
So this feature request is to basically just support the structure found at https://github.com/boostorg/boost?
from rules_boost.
I didn't mean using a different version of each library, but at least a different version of Boost (e.g. all boost 1.65 libraries or all boost 1.69 libraries). Currently this is pinned to a single version:
Line 231 in 29d1426
from rules_boost.
Because of the if on line 224 of that file, you can already override that if you want. Not the cleanest way, but you can copy/paste that http_archive
block in your workspace (before calling boost_deps
) and change the version there. But yeah taking the version and checksum as an argument for this macro could be a better approach to this.
from rules_boost.
Unfortunately, available files change between boost releases...in my experience the included BUILD.boost
won't work with Boost versions for which it wasn't written/tested/updated. It's possible that some of the @boost targets would still work though. You're mileage may vary.
I think we would probably need a different approach to writing and maintaining the rules if we wanted to support multiple versions of boost in the same rules_boost
commit. Something like an explicit file list per library version, calculated from the modularized boost source tree could maybe work. But that would be a pretty big change in project structure and scope.
from rules_boost.
Apparently, this suffers from the same issue: bazelbuild/rules_foreign_cc#510
from rules_boost.
Related Issues (20)
- Missing `<boost/version.hpp>` HOT 4
- 48 tests fail locally on M1 MacBook Pro HOT 2
- BOOST_NO_CXX98_FUNCTION_BASE redefined when using libc++ HOT 1
- Clarification Needed: sha256 Requirement in http_archive for Renovate HOT 4
- boost::icl missing dependencies leading to compilation-errors
- Different Version HOT 2
- Add boost.cobalt library
- @boost//:stacktrace is missing libbacktrace dependency HOT 5
- Illegal ambiguous match on configurable attribute "srcs" in `@com_github_facebook_zstd//:zstd` on Windows HOT 2
- Add bazel rules for boost-redis released with boost 1.84
- Integrate with bzlmod HOT 5
- Boost Locale with ICU
- downgrade lzma dep to 5.4.6 to remove backdoor
- cross-compiling on conda-forge is trying to compile a wrong file HOT 3
- use zlib from BCR
- openssl use when customised HOT 1
- Get rid of name com_github_nelhage_rules_boost and name it only rules_boost HOT 4
- Bringing rules_boost to BCR HOT 2
- [Bazel7.1.2] absolute path inclusion(s) found in rule '@@rules_boost~~non_module_dependencies~
- Broken `python` target due to missing external repo
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rules_boost.