BUSY looks cool! Unfortunately my work projects rely on another big C++ project that has its own meta cmake layer.
One thought, it looks like you're quoting a shell string like:
""NAPPGUI_BUILD_DIR=\"" + tostring(root_build_dir) + "\""
That'll break in annoying (possibly insecure) ways and is tedious to write the quotes. Perhaps you could add a 'quotedString' proc? Maybe: ""NAPPGUI_BUILD_DIR=" + quotedStr(root_build_dir)
Speaking of standards, have you tried talking with any cmake collaborators? I recall reading a post on HN discussing a possible new cmake frontend language. Something like BUSY as a frontend could be cool.BTW, here's my latest attempt to avoid dynamic configuration files by making a YAML like in Nim: https://github.com/elcritch/cimporter/blob/exper-interp/test...
It may look a bit complicated at first, but the underlying syntax rules are surprisingly simple and consistent. There are only a few small macros for convenience like the 'list' one that replaces array syntax. Best of all that means I get all the goodies of a statically typed language like type annotations from the LSP.
> it looks like you're quoting a shell string like:
That's not particularly a shell string, but a DEFINE; the rule is to declare them as they are required by the compiler command line of a given platform. I can add a quoted_string() predeclared procedure if it helps.
> have you tried talking with any cmake collaborators ... Something like BUSY as a frontend could be cool.
No, I haven't; the BUSY spec is open source and available if need be, but for one part I would be very surprised if it was used just as is for the mentioned purpose, and on the other part I'm not sure whether it is a decent approach to add yet another layer to cmake (the parser would then likely be written in cmake language and all the legacy would still have to be present for backward compatibility, increasing the confusion we already have).
Ah I am guessing that you are invoking the compiler using ‘sh’ (or cmd.exe on win). Otherwise you wouldn’t need the extra quotes. But then you should properly quote for the posix shell.
Though you could exec the compiler but then you could probably keep it as a list.
> I'm not sure whether it is a decent approach to add yet another layer to cmake
Yah that’s the problem. Especially with large legacy build systems.
> (the parser would then likely be written in cmake language and all the legacy would still have to be present for backward compatibility,
Well I think they meant it’d built on the c++ layer. But it’d still need the old cmake language parser still.
This statement alone automatically eliminates any credibility from what you said. CMake was revolutionized with CMake 3.0, which was released in 2014. Since then CMake became a radically different build system, and got so many things right it became the de facto standard.
Also, CMake is a build system generator. It's just a high level specification that generates build systems that you pick, like make, ninja, even visual studio and Xcode.
Irrelevant. The whole point is that cmake 3.0, which was released in 2014, is an entirely different beast. See "modern cmake".
It makes no sense at all to argue thing about stuff just because you used something two decades ago. Totally irrational.
lldb-vscode.exe - System Error: The code execution cannot proceed because python310.dll was not found.
lldb.exe - System Error: The code execution cannot proceed because python310.dll was not found.
This occurs every time the program is run, though the program does indeed start, although I haven't been able to test it much since I'm not very familiar with Qt and Qt Creator.
Edit: I'm trying to create a Hello World. File> New File Or Project only lets me "import" one, so I "imported" an empty folder. Nothing seems to happen in the UI (there is no indication that a project has been created or opened, projects button is greyed out, and I can't find a way to add cpp files), though it did create a bunch of project files in that folder.
Concerning "lldb-vscode.exe": I never saw this and don't know what it means; maybe LeanCreator has found an Clang/Lldb installation somewhere which is compiled with Python support, but Python is not in the path; it's possible that you get this error on start because LeanCreator tries to get information about the toolchains it finds by running the programs; you likely get rid of this error if you put the Python executable in the PATH before starting LeanCreator.
Edit: followed your suggestion.
01:59:38: Running steps for project LeanQt...
Error while building/deploying project LeanQt (kit: Desktop)
When executing step "Busy Build"GCC 12.1.0 (MSYS2)
LLVM 15.0.7
MSVC 19.33.31630 (not on PATH)
(This thread's probably getting too long, you can reach me at my email address. See my HN profile.)
Take a look at a list of projects using Meson here: https://mesonbuild.com/Users.html
Your statement makes no sense and reads like you have an irrational axe to grind regarding cmake.
CMake is just a way t provide high level descriptions of your project and from that generate a build system of your choosing. It does its job well and better than any alternative. Making random claims like "outdated" is meaningless, specially as you can use cmake to generate Ninja or visual studio projects.