toolchains_llvm VS bazel_rules_qt

Compare toolchains_llvm vs bazel_rules_qt and see what are their differences.

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
toolchains_llvm bazel_rules_qt
4 1
268 44
4.1% -
8.8 0.0
3 days ago about 2 years ago
Starlark Starlark
Apache License 2.0 Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

toolchains_llvm

Posts with mentions or reviews of toolchains_llvm. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-12-01.
  • cc toolchain for macOS Monterey / Apple M1
    2 projects | /r/bazel | 1 Dec 2022
    load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") BAZEL_TOOLCHAIN_TAG = "0.7.2" BAZEL_TOOLCHAIN_SHA = "f7aa8e59c9d3cafde6edb372d9bd25fb4ee7293ab20b916d867cd0baaa642529" http_archive( name = "com_grail_bazel_toolchain", sha256 = BAZEL_TOOLCHAIN_SHA, strip_prefix = "bazel-toolchain-{tag}".format(tag = BAZEL_TOOLCHAIN_TAG), canonical_id = BAZEL_TOOLCHAIN_TAG, url = "https://github.com/grailbio/bazel-toolchain/archive/{tag}.tar.gz".format(tag = BAZEL_TOOLCHAIN_TAG), ) load("@com_grail_bazel_toolchain//toolchain:deps.bzl", "bazel_toolchain_dependencies") bazel_toolchain_dependencies() load("@com_grail_bazel_toolchain//toolchain:rules.bzl", "llvm_toolchain") llvm_toolchain( name = "llvm_toolchain", llvm_version = "15.0.5", ) load("@llvm_toolchain//:toolchains.bzl", "llvm_register_toolchains") llvm_register_toolchains() http_archive( name = "com_google_googletest", urls = ["https://github.com/google/googletest/archive/609281088cfefc76f9d0ce82e1ff6c30cc3591e5.zip"], strip_prefix = "googletest-609281088cfefc76f9d0ce82e1ff6c30cc3591e5", )
  • Incremental Builds for Haskell with Bazel
    7 projects | news.ycombinator.com | 23 Jun 2022
    Yeah the cross-compilation thing is definitely a rough spot. I have one project that's able to work around it via extensive hacks with macros, but at some point I'll need to do it "the right way."

    Honestly if the docs had a canonical example of e.g. using unix_cc_toolchain_config (example: [0]) + Bootlin to compile for aarch64, it'd probably go a long way to making things understandable. Because say what you will about the old CROSSTOOL approach, at least there was a nice tutorial for it.

    [0] https://github.com/grailbio/bazel-toolchain/blob/f14a8a5de8f...

  • Cross-compiling to linux on MacOS with cgo
    2 projects | /r/bazel | 9 Apr 2021
    I'm really not familiar with this issue or Go nor C++ overall, but if all you need is to set up a C++ toolchain, this should be quite simple and solve your issue.
  • WebAssembly
    9 projects | news.ycombinator.com | 27 Feb 2021
    The trick is that to provide Bazel with a custom toolchain involves way more than just setting an environment variable, because Bazel wants to control installing and making available the compiler reliably (e.g., what if `emcc` is not present on the system where Bazel was invoked? Bazel solves that problem by fetching it and building it for that system)

    There are projects that provide drop-in support for custom toolchains (e.g., we use this project[0] in Sorbet to fetch and build a custom LLVM/Clang toolchain for every host we build on (rather than relying on the system toolchain). But I'm not aware of a project that has done that for Emscripten. Maybe it would be as easy as plucking out what we've done in our project into a project that others could depend on, but to quote a colleague:

    > Setting up a cc toolchain in Bazel is a unique sort of pain.

    [0] https://github.com/grailbio/bazel-toolchain/

bazel_rules_qt

Posts with mentions or reviews of bazel_rules_qt. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-06-23.
  • Incremental Builds for Haskell with Bazel
    7 projects | news.ycombinator.com | 23 Jun 2022
    I migrated a mid-size polyglot project from Makefiles to Bazel and C++ was a large component of the project.

    Some obstacles:

    1. Building with QT5 MOC & UI files. There is a great library[0] for it but it has hardcoded paths to the QT binaries and header files assuming a system-wide installation. I had to patch the rule to point to our QT location. Then it worked fine.

    2. There is no rule to build a fully static library[1]. Since we were shipping a static library in our Makefile system, that was somewhat annoying.

    3. We were using system links like `$PROJECT_ROOT/links/GCC/vX.Y.Z/ -> /opt/gcc/...` to point to all the build tools, but these didn't work in Bazel I think because it required absolute paths for any binaries it calls. We ended up putting them in a .bazelrc but we would need a different one for Windows and Linux.

    4. Not good integration with IDEs

    Ultimately we did not keep using Bazel because we were building Python binaries and py_binary was too slow on Windows. And we didn't have enough time to write a PyInstaller rule.

    [0]: https://github.com/justbuchanan/bazel_rules_qt

    [1]: https://github.com/bazelbuild/bazel/issues/1920

What are some alternatives?

When comparing toolchains_llvm and bazel_rules_qt you can also consider the following projects:

WSL - Source code behind the Windows Subsystem for Linux documentation.

gcc-toolchain - A fully-hermetic Bazel GCC toolchain for Linux.

noclip.website - A digital museum of video game levels

nixpkgs - Nix Packages collection & NixOS

content - The content behind MDN Web Docs

llvm-project - The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.

rules_python - Bazel Python Rules