5 ms·
FWIW: there is something fundamentally wrong with a meta-meta build system. I don't think you should bother generating or wrapping CMake, you should be replacin
by duped 6mo ago
FWIW: there is something fundamentally wrong with a meta-meta build system. I don't think you should bother generating or wrapping CMake, you should be replacing it.
- SpaceNoodled 6mo agoMy thoughts exactly. I thought this was going to be some new thing, but it's just yet another reason that I'll stick with Makefiles.
- flohofwoe 6mo agoDo your Makefiles work across Linux, macOS and Windows (without WSL or MingW), GCC, Clang and MSVC, or allow loading the project into an IDE like Xcode or Visual Studio though? That's why meta-build-systems like cmake were created, not to be a better GNU Make.
- uecker 6mo agoThere is something fundamentally wrong with Windows or Visual Studio that it requires ugly solutions.
- delta_p_delta_x 6mo agoWindows and Visual Studio solutions are perfectly fine. MSBuild is a declarative build syntax in XML, it's not very different from a makefile.
- uecker 6mo agoXML is already terrible. But the main problem seems to be that they created something similar but incompatible to make.
- flohofwoe 6mo agoOk, then just cl.exe instead of gcc or clang. Completely different set of command line options from gcc and clang, but that's fine. C/C++ build tooling needs to be able to deal with different toolchains. The diversity of C/C++ toolchains is a strength, not a weakness :) One nice feature of MSVC is that you can describe the linker dependencies in the source files (via #pragma comment(lib, ...)), this enables building fairly complex single-file tools trivially without a build system like this: cl mytool.c ...without having to specify system dependencies like kernel32 etc... on the cmdline.
- account42 6mo ago> Completely different set of command line options from gcc and clang, but that's fine. Clang does have clang-cl with similar command-line options.
- account42 6mo agoAt least you can use the compiler/linker without them.
- SpaceNoodled 6mo agoYes, yes, yes, yes, yes, LOL why, and I have never met an IDE that integrates nicely with a generic build file format.
- flohofwoe 6mo agoCmake is doing a lot of underappreciated work under the hood that would be very hard to replicate in another tool, tons of accumulated workarounds for all the different host operating systems, compiler toolchains and IDEs, it's also one of few build tools which properly support Windows and Visual Studio. Just alone reverse engineering the Xcode and Visual Studio project file formats for each IDE version isn't fun, but this "boring" grunt work is what makes cmake so valuable. The core ideas of cmake are sound, it's only the scripting language that sucks.
- SleepyMyroslav 6mo agoAnother fresh example of what you don't like: https://www.youtube.com/watch?v=ExSlx0vBMXo https://www.youtube.com/watch?v=ExSlx0vBMXo Building C++: It Doesn't Have to be Painful! - Nicole Mazzuca - Meeting C++ 2025 Build systems don't plan to converge in the future =)