3 ms·
It’s better than every other build system, but god I wish they had just used a preexisting language for it. The syntax for CMake just feels so janky and weird,
by overgard 8y ago
It’s better than every other build system, but god I wish they had just used a preexisting language for it. The syntax for CMake just feels so janky and weird, and it’s another set of things I have to remember and (eventually) forget. It’s not like it has these amazing language concepts nothing else can do; and if they’re worried about size or dependencies something like Lua would add like no overhead and be super simple to link.
- ur-whale 8y agoCouldn't agree more. Any system that designs its own DSL should be suspect: designing languages is bloody hard, and anyone who think he can cobble his own to solve a problem as hard as build systems is doomed to produce something like cmake.
- whyever 8y agoIt's kind of a historical accident. Originally, CMake was supposed to be just a list of commands (CMakeLists.txt). Of course, it was heavily extended to what we have now.
- rutthenut 8y agoDo understand that things change over time, from simple beginnings to complex offspring. But I agree with many commenters here; it is frustrating and a ball-ache to have to learn yet another syntax to manage build dependencies and instructions. On that, I also detest how YAML, Python and so on make space indentation a core aspect of how the files are interpreted and processed. That idea stinks. imvho.
- whyever 8y ago> it is frustrating and a ball-ache to have to learn yet another syntax to manage build dependencies and instructions. Oh, I agree as well. I was just providing context.
- DoofusOfDeath 8y agoI agree. CMake's scripting language has a lot of the same pain-points as Bash. For example, the lack of a clear distinction between lists and strings. I've sometimes wondered if CMake would benefit from getting an additional / replacement scripting language. While retaining the same underlying object model and other code, that is. My only fear would be that it would be a first step in morphing into Bazel, which I find unbearably complicated.
- DoofusOfDeath 8y agoClarification: I know that Bash has arrays. But environment variables such as "PATH" use colon-separated strings.