
Batch Style Guide - Sparkenstein
https://github.com/trgwii/Batch-Style-Guide
======
paulriddle
I heard some people say screw these CMake, Autotools, Makefiles, Ninjas,
mesons, etc. Compilation of even big projects takes seconds. Just use a batch
file on Windows and shell script on Linux. It was Casey Muratori on his
Handmade Hero stream. I think he is right and most projects don't need even a
Makefile.

I've been learning CMake recently and it seems that quite literally every part
of it is ridden with edge cases and weird bumps. Like:

    
    
      - Variables can have a type, but it's not really a type, it's for GUI only.
      - There are cache variables but regular variables take precedence except if you set a cache variable with FORCE. But if you do so, then it hides the normal variable and you get different behaviour on subsequent runs.
      - Variables can be combined in an array, except it is a string separated by ;.
      - There is a bunch of deprecated syntax that you shouldn't use but should be aware of. You should start your CMakeList.txt files with a weird conditional that sets the minimum required version using a syntactic hack.
      - It ignores $CPPFLAGS in some cases, Arch Wiki said so.
      - There are multiple values for true and false. Things like YES, 1, ON, TRUE, NO, 0, OFF, FALSE.
      - For older versions of CMake a string literal can evaluate to the value of similarly named variable.
      - It is really a programming language. There is seems to be so much to it, it doesn't look limited
    

I just started to learn. It's not a big deal, but it feels messy.

