Software Alternatives & Reviews

Bazel VS CMake

Compare Bazel VS CMake and see what are their differences

Bazel logo Bazel

Bazel is a tool that automates software builds and tests.

CMake logo CMake

CMake is an open-source, cross-platform family of tools designed to build, test and package software.
  • Bazel Landing page
    Landing page //
    2023-07-25
  • CMake Landing page
    Landing page //
    2022-09-21

We recommend LibHunt CMake for discovery and comparisons of trending CMake projects.

Bazel

Categories
  • Front End Package Manager
  • DevOps Tools
  • JavaScript Package Manager
  • Continuous Integration
Website bazel.build
Details $

CMake

Categories
  • Front End Package Manager
  • JavaScript Package Manager
  • JS Build Tools
  • Package Manager
Website cmake.org
Details $-

Bazel videos

Kebenaran dari Powerbank Bazel 450 Series

More videos:

  • Review - BazelCon 2019 Day 2: Half-Day Bazel Bootcamp (Part 1)
  • Review - What's new in Bazel build and Gerrit Code Review

CMake videos

CMake for Dummies

More videos:

  • Review - CppCon 2017: Mathieu Ropert “Using Modern CMake Patterns to Enforce a Good Modular Design”
  • Review - Hunter, a CMake driven package manager for C/C++ projects - Daniel Friedrich - Lightning Talks

Category Popularity

0-100% (relative to Bazel and CMake)
Front End Package Manager
DevOps Tools
100 100%
0% 0
JavaScript Package Manager
JS Build Tools
0 0%
100% 100

User comments

Share your experience with using Bazel and CMake. For example, how are they different and which one is better?
Log in or Post with

Social recommendations and mentions

Bazel might be a bit more popular than CMake. We know about 60 links to it since March 2021 and only 51 links to CMake. We are tracking product recommendations and mentions on various public social media platforms and blogs. They can help you identify which product is more popular and what people think of it.

Bazel mentions (60)

  • How to write unit tests in C++ relying on non-code files?
    This is a problem that Bazel (https://bazel.build) solves in a very convenient way. You can just keep using the paths relative to the repository root, and as long as you properly declare your test needs that file it will access it without problems. Or you can use the runfile libraries to access them too. - Source: Hacker News / about 1 month ago
  • My first Software Release using GitHub Release
    When doing research for this lab exercise I looked at both vcpkg and conan. Both are package managers that would automate the installation and configuration of my program with its dependencies. However, when it came to releasing and sharing my program my options were limited. For example, the central public registry for conan packages is conan-center, but these packages are curated and the process is very... - Source: dev.to / 4 months ago
  • Declarative Gradle is a cool thing I am afraid of: Maven strikes back
    NOTE: I won’t mention SBT and Leiningen here because, with all due respect, they are niche build tools. I also won’t discuss Kobalt for the same reason (besides, it’s no longer actively maintained). Additionally, I won’t touch upon Bazel and Buck in this context, mainly because I’m not very familiar with them. If you have insights or comments about these tools, please feel free to share them in the comments 👇. - Source: dev.to / 5 months ago
  • A Modern C Development Environment
    > None of this solves C's only REAL problem (in my opinion) which is the lack of dependency management. Bazel solves this really nicely, I know some people have strong opinions on it but I cannot recommend it enough https://bazel.build/. - Source: Hacker News / 8 months ago
  • Go Dependency management in large company projects - How do you do it?
    I know that some projects like cockroach use custom build tools like bazel. But we actually really like to use to be able to build our projects simply with the great go toolchain and don't really aim to dive deep into custom build solutions. Source: 9 months ago
View more

CMake mentions (51)

  • Top 7 C++ Tools to explore in 2024 if it's not already the case.
    CMake stands for "Cross-platform Make" and is an open-source, platform-independent build system. It's designed to build, test, and package software projects written in C and C++, but it can also be used for other languages. Here's an overview of CMake and its features:. - Source: dev.to / about 1 month ago
  • My first Software Release using GitHub Release
    When doing research for this lab exercise I looked at both vcpkg and conan. Both are package managers that would automate the installation and configuration of my program with its dependencies. However, when it came to releasing and sharing my program my options were limited. For example, the central public registry for conan packages is conan-center, but these packages are curated and the process is very... - Source: dev.to / 4 months ago
  • A little help for a C++ newbie
    Install the CMake program using your system package manager, e.g. Sudo apt-get install cmake. Source: 6 months ago
  • Questions Regarding working with Mingw_w64, MSYS2, and CMake on Windows
    Oh I just assumed it was talking about the one from cmake.org since I was having trouble. I can now confirm that mingw-w64-cmake and the binary from cmake.org do operate in mostly identical ways. Source: 12 months ago
  • Questions Regarding working with Mingw_w64, MSYS2, and CMake on Windows
    Then looking at any one of the many examples provided on cmake.org, it's clearly a viable way to do set(CMAKE_*), (e.g., set(CMAKE_CXX_STANDARD 11) Set(CMAKE_CXX_STANDARD_REQUIRED True)). Of course, another way to set these variables is to use the -D flag as you suggested, but I was just wondering why you would prohibit using set(CMAKE_*). Source: 12 months ago
View more

What are some alternatives?

When comparing Bazel and CMake, you can also consider the following products

Gradle - Accelerate developer productivity. Gradle helps teams build, automate and deliver better software, faster. DocsExplore the documentation of Gradle. Find installation ..

GNU Make - GNU Make is a tool which controls the generation of executables and other non-source files of a program from the program's source files.

Ninja Build - Ninja is a small build system with a focus on speed.

SCons - SCons is an Open Source software construction tool—that is, a next-generation build tool.

Apache Maven - Apache Maven is a project comprehension and management software tool.

Meson - Meson is an open source build system meant to be both extremely fast, and, even more importantly...