3 ms·
Basically it is one big script (with globals and side effects) which generates makefiles. (Even if it does not generate makefiles, the project model is makefil
by lightgreen 6y ago
Basically it is one big script (with globals and side effects) which generates makefiles.
(Even if it does not generate makefiles, the project model is makefiles: targets, file names, timestamps.)
- andi999 6y agoSo the globals and side effects are the problem or the generating makefiles part?
- lightgreen 6y agoBoth are the problems. Because of side effects, when single cmake file modified, the whole project need to be regenerated. Also, because of side effects, project files become too frigile, for example, changing the order of two includes may result in incorrect project definition. And makefile generation part is problematic: using timestamps to check if something need to be rebuilt is unreliable (may result in not rebuilding something when project is actually changed).
- andi999 6y agoIsnt the makefile generation the only reason one uses cmake?
- lightgreen 6y agoIt is also used to generate project files for various ides. Also, (but I’m not sure), cmake have some built in make which does the build like mske would do but without generating makefiles and invoking real make.