Giter Site home page Giter Site logo

Comments (9)

MarkusTeufelberger avatar MarkusTeufelberger commented on August 25, 2024

Ah, maybe I didn't express myself clearly:

Instead of using

rules_boost/boost/boost.bzl

Lines 125 to 134 in 0be1390

http_archive(
name = "boost",
urls = [
"https://%s.dl.sourceforge.net/project/boost/boost/1.67.0/boost_1_67_0.tar.gz" % m
for m in SOURCEFORGE_MIRRORS
],
build_file = "@com_github_nelhage_rules_boost//:BUILD.boost",
strip_prefix = "boost_1_67_0",
sha256 = "8aa4e330c870ef50a896634c931adf468b21f8a69b77007e45c444151229f665",
)

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.

nelhage avatar nelhage commented on August 25, 2024

Whoops, my bad! That closes: line was a typo :(

from rules_boost.

reltuk avatar reltuk commented on August 25, 2024

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.

Kernald avatar Kernald commented on August 25, 2024

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.

reltuk avatar reltuk commented on August 25, 2024

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.

MarkusTeufelberger avatar MarkusTeufelberger commented on August 25, 2024

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:

"https://dl.bintray.com/boostorg/release/1.71.0/source/boost_1_71_0.tar.bz2",

from rules_boost.

Kernald avatar Kernald commented on August 25, 2024

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.

reltuk avatar reltuk commented on August 25, 2024

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.

traceon avatar traceon commented on August 25, 2024

Apparently, this suffers from the same issue: bazelbuild/rules_foreign_cc#510

from rules_boost.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.