bazel_rules_qt
Bazel
Our great sponsors
bazel_rules_qt | Bazel | |
---|---|---|
1 | 70 | |
39 | 19,138 | |
- | 1.2% | |
2.7 | 10.0 | |
6 months ago | 3 days ago | |
Starlark | Java | |
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.
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.
Bazel
-
Better CI/CD caching with new-gen build systems
A build system is a program that orchestrates the execution of underlying tools such as compilers, code generators, test runners, linters and so on. Examples of build systems include the venerable Make, the JVM-centric Ant, Maven and Gradle, and newer systems such as Pants and Bazel (full disclosure: I am one of the maintainers of Pants).
-
Google's Carbon Language: An Alternative to C++ ?
Let's look at how to run carbon, so at this point you need to install LLVM and Google's build tool, Bazel.
-
CMAKE for Beginners
To add to that, I'd definitely recommend checking out https://bazel.build, Google's open source build platform. It's very intuitive in setting up a big project + tests in any popular language, including C++.
-
Dev Discussions: Everything You Need to Know about Monorepos with Juri Strumpflohner of Nrwl
Pioneered by tech giants like Google and Meta with tools like Bazel and Buck, monorepos are seeing widespread adoption across companies of all sizes and industries.
-
Dev Template. Build your entire project with one command 🚀
Why not just use Bazel (https://bazel.build/) the Open Source version of Google’s internal build system Blaze? It’s super powerful, polyglot, supports (remote-) caching and is highly extensible.
-
How to convince management that something like Git is industry standard?
Maybe for some projects, but Google most definitely uses Git (all Google projects).
-
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.
- Is there any better options for building kotlin then gradle?
-
Rust starlark interpreters purpose?
Secondly, let me check my current version of the Bazel source. The Java Starlark code (https://github.com/bazelbuild/bazel/tree/master/src/main/java/net/starlark/java) is about 22 KLoC (accoridng to "find src/main/java/net/starlark/java/ -name '*.java' | xargs wc -l"). The non-Starlark code (https://github.com/bazelbuild/bazel/tree/master/src/main/java/com/google/devtools) comes out to 217 KLoC. This is just main code that's (mostly) actually bundled into the binary: I'm ignoring tests, native wrappers, and a lot of tooling.
-
Tensorflow Compile Runs For A Long Time
So I am trying to compile TensorFlow from the source (using a clone from their git repo from 2019-01-31). I installed Bazel from their shell script (https://github.com/bazelbuild/bazel/releases/download/0.21.0/bazel-0.21.0-installer-linux-x86_64.sh).
What are some alternatives?
Buck - A fast build system that encourages the creation of small, reusable modules over a variety of platforms and languages.
Gradle - Adaptable, fast automation for all
meson - The Meson Build System
mediapipe - Cross-platform, customizable ML solutions for live and streaming media.
Apache Maven - Apache Maven core
ninja - a small build system with a focus on speed
skaffold - Easy and Repeatable Kubernetes Development
bazelisk - A user-friendly launcher for Bazel.
Rake - A make-like build utility for Ruby.
jib - 🏗 Build container images for your Java applications.
Flux - Successor: https://github.com/fluxcd/flux2 — The GitOps Kubernetes operator
pants - The Pantsbuild developer workflow system