3 ms·
> You describe your project in a simple craft.toml I don't like it. Such format is generally restricted (is not Turing-complete), which doesn't allow doing som
by Panzerschrek 7mo ago
> You describe your project in a simple craft.toml
I don't like it. Such format is generally restricted (is not Turing-complete), which doesn't allow doing something non-trivial, for example, choosing dependencies or compilation options based on some non-trivial conditions. That's why CMake is basically a programming language with variables, conditions, loops and even arithmetic.
- kakwa_ 7mo agoWhile I do get why CMake is a scripted build system, I cannot help but notice that other languages don't need it. In Rust, you have Cargo.toml, in go, it's a rather simple go.mod. And even in embedded C, you have platformio which manages to make due with a few .ini files. I would honestly love to see the cpp folks actually standardizing a proper build system and dependency manager. Today, just building a simple QT app is usually a daunting task, and other compiled ecosystems show us it doesn't have to be.
- fisf 7mo agoPlatformio is not simple by any means. That few .ini files generate a whole bunch of python, and this again relies on scons as build system. That's a nice experience as long as you stay within predefined, simple abstractions that somebody else provided. But it is very much a scripted build system, you just don't see it for trivial cases. For customizations, let alone a new platform, you will end up writing python scripts, and digging through the 200 pages documentation when things go wrong.