I used to be so hopeful for cmake, but just grew to be sort of annoyed by it. Build systems are, however, perennial like the grass, so we'll see more.
I used to be so hopeful for cmake, but just grew to be sort of annoyed by it. Build systems are, however, perennial like the grass, so we'll see more.
The author's claim that "a CMake-generated project cannot possibly be the final say" is so incorrect that I am not surprising that he found CMake frustrating. It is quite the opposite; if you ever find yourself manually editing the generated project files for any reason other than debugging build-system issues you're doing it wrong and are going to have a very bad time. You must always find a way to express the thing you need within the CMakeFiles.txt, which sometimes unfortunately requires awful hacks.
Amusingly the SO question he links to as evidence that editing the generated project file is required now has an answer saying how to do it properly...
Nobody was talking about redistributing anything. I just said I should be able to move the folder from folder A to folder B.
Not sure what to even reply to the rest of your comment...
After moving the project folder to a new location you just have to rerun the cmake command to update the project files. CMake attempts to do this automatically when you build.
[B] >>>>> AFAIK cmake works perfectly fine with relative paths; what breaks?
[A] >>>> I don't think it works: https://ofekshilon.com/2016/08/30/cmake-rants/
[C] >>> it makes no more sense to distribute the project files
[A] >> Nobody was talking about redistributing anything. I just said I should be able to move the folder from folder A to folder B.
[C] > I assumed you linked to it because you agreed with the opinions he expressed.
You just randomly... "assumed"? and then changed the topic?
The most likely explanation is you didn't even read, given how off-topic the comment was.
Please... you wasted > 15 minutes of my time trying to figure out how to reply to your irrelevant comment without coming off as a total jerk. I know it's fun to lecture strangers about the Right (TM) way to use $technology, but maybe spend 10 seconds to read the discussion before doing that.
> This makes CMake-generated projects almost useless: you cannot source control them or share them in any other way.
Yes, and this is a good thing. I'm surprised anyone would want to do this on a visual studio solution of all things -- managing solution and project file merges in source control is incredibly tedious.
A lot of things about CMake irritate me, but its treatment of out of source build files as purely intermediate is a major plus to me, not a negative.
I could see how this would mess up your use case; but you have to admit your use case is very narrow -- I guess you want to be able to just rename the build folder; if you moved it more than that even the relative path to the source dir would be off -- and the justification for the limitation seems sensible.