gcc-toolchain
bazel_rules_qt
Our great sponsors
gcc-toolchain | bazel_rules_qt | |
---|---|---|
1 | 1 | |
88 | 44 | |
- | - | |
6.8 | 0.0 | |
7 days ago | about 2 years ago | |
Starlark | Starlark | |
Apache License 2.0 | Apache License 2.0 |
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.
gcc-toolchain
bazel_rules_qt
-
Incremental Builds for Haskell with Bazel
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.
What are some alternatives?
mir - A lightweight JIT compiler based on MIR (Medium Internal Representation) and C11 JIT compiler and interpreter based on MIR
toolchains_llvm - LLVM toolchain for bazel
nixpkgs - Nix Packages collection & NixOS
rules_python - Bazel Python Rules
llvm-project - The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
Bazel - a fast, scalable, multi-language and extensible build system
rules_cc - C++ Rules for Bazel