Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

"CMake is an open-source, cross-platform family of tools designed to build, test and package software. CMake is used to control the software compilation process using simple platform and compiler independent configuration files, and generate native makefiles and workspaces that can be used in the compiler environment of your choice."

They would disagree with you.



Cmake is a makefile generator. The output of cmake is a series of makefiles. That's it. If you need to build a project and you don't have make, nmake, jmake or whatevermake in your system them cmake does nothing to get your project built.


CMake can generate:

* Borland Makefiles

* MSYS Makefiles

* MinGW Makefiles

* NMake Makefiles

* Unix Makefiles

* Watcom WMake

* Ninja

* Visual Studio projects

* Green Hills MULTI

* Xcode projects

And more: https://cmake.org/cmake/help/latest/manual/cmake-generators....


> CMake can generate:

Although you're conflating project transcoders with makefiles, nevertheless that's the whole point of cmake: generate makefiles that are used by some third-party program to actually build the software.


But it still depends on third-party IDE or build tools. It will be limited by their own features.

There are still many differences in the behavior of different IDEs.


no, they won't

"generate native makefiles" (I prefer Ninja myself) - this is what used to build software


Leveraging compositional abstraction doesn't change what you use the thing for. I use cmake (well I don't often, but when I do) to build my projects. How it accomplishes that is if little concern.


> I use cmake (well I don't often, but when I do) to build my projects.

no, you don't

remove from your system make (ninja, msbuild, ...) and see how cmake builds your project


>see how cmake builds your project

Yes exactly when you remove a piece of the build system the build system stops working.

When I use bazel I need python installed or it doesn't work. That doesn't mean my build system is python. It means my build system takes advantage of python. Same for cmake and make.


I'm sorry but make is not part of cmake build system. It predates cmake by decades. It is true build system used in by itself


Yes. Make is a build system. Cmake is also a build system that leverages make. This means that from the perspective of a user of cmake, make is a component/dependency/part of cmake. make can be used independently, and is absolutely developed independently, of cmake.

But when you remove a dependency of a tool you can expect the tool to stop working. That doesn't mean that the tool doesn't do what it says it does.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: