Comments (4)
Looks to me like the rules_boost BUILD.bazel is actively maintained, but I'm not sure whether this covers all libraries: https://github.com/nelhage/rules_boost/blob/master/BUILD.boost. I do agree though that the custom boost_library
rules seem rather unnecessary to me. I think it would be a bit nicer to have "raw" rules_cc.
If it helps, I also played around with overlaying boost a while ago. Boost has a CMake build file generator tool. That tool can be rather easily adjusted to output Bazel BUILD files instead. The nice thing is that this way the dependencies for libraries are autogenerated. I believe I had to manually fix some smaller issues with these autogenerated files, but most targets "just worked" out of the box.
A relatively low maintenance overhead way to handle boost in the BCR may be to http_archive
-fetch the packaged stable releases from the boost homepage and apply an overlay to it that adds a BUILD.bazel file, similarly to the bazel overlay in the llvm-project. Or we could just add a build file as a BCR-side patch 😄
from bazel-central-registry.
Contributions in this area would be very welcome. https://github.com/nelhage/rules_boost appears to be a promising candidate for BCR inclusion.
from bazel-central-registry.
+1, but Boost is a very large repository and will likely need many maintainers. Some immediate questions:
- Is it better to include boost directly? Or is it better to include nelhage/rules_boost?
- If the former, is it better to have one monolithic boost repo? (e.g. boost/) or is it better to have many subrepos? (e.g. boost-accumulator, boost-any, etc...). Note that vcpkg seems to have both.
- If the latter, it is likely that lots of time will need to be spent writing adapters, since nelhage/rules_boost introduces many customizations.
from bazel-central-registry.
In the past I did fork the individual boost repositories and add BUILD and WORKSPACE files to them. https://github.com/bazelboost. No MODULE files since I did this before bcr was available. What I did was have the individual repositories and a single repository that creates an alias
similar to the boostorg repository. Example alias @boost//libs/mp11:mp11
-> @com_github_bazelboost_mp11//:mp11
(source: https://github.com/bazelboost/boost/blob/main/libs/mp11/BUILD.bazel)
However, they are woefully unmaintained. I do use them, but I would consider it more of an experiment.
from bazel-central-registry.
Related Issues (20)
- wanted: p-ranav/argparse
- [Bug]: Why is there no `compatibility_level` (defaults to 0) for [email protected]? HOT 1
- wanted: meekrosoft/fff
- wanted: Yasm
- [Bug]: grpc 1.62.1 imports `googleapis` as bzlmod, but also does http_archive on it. HOT 1
- [Bug]: //tools:add_module prompts for compatibility level without explaining what that is HOT 2
- [Bug]: //tools:add_module doesn't tell me how to expose all build targets HOT 1
- [Bug]: //tools:add_module fails with netrc error
- [Bug]: rules_proto incorrectly marks rules_cc as a dev dependency HOT 1
- wanted: filament
- wanted: pzstd
- [Bug]: Many modules add `-lrt` as a linkopt, which only works on Linux HOT 1
- [Bug]: GET returned 403 Forbidden from bcr.bazel.build
- wanted: microsoft/onnxruntime
- wanted: grpc/grpc-kotlin
- wanted: [emscripten-core/emsdk] HOT 1
- [Bug]: Some source URLs return 404
- wanted: [libevent/libevent]
- wanted: google/j2cl rules and dependencies
- [Bug]: Cannot add google/osqp-cpp because osqp isn't built with `DLONG` HOT 1
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 bazel-central-registry.