3 ms·
> Say you add a new source file. Wouldn’t it be great if your build system just picked it up? I have never enjoyed the experience of working with tools that di
by tom_ 3y ago
> Say you add a new source file. Wouldn’t it be great if your build system just picked it up?
I have never enjoyed the experience of working with tools that did this. How does it know which files I actually want, and which files are there because I (or somebody else) got something wrong? The answer, of course: it doesn't.
I moan a lot about having to do the computer's work for it, but I think in this case I am happy to put up with some minor drudgery (adding a file name to a list, once) in exchange for the computer's boundless ability to then patiently follow my instructions without trying to second-guess me on every single build.
- gavinhoward 3y agoAuthor here. Rig will do this too. You can statically list dependencies.
- scrubs 3y agoLook at bloomberg's bde library on github. There is a convention for naming so every file can only be in one place.
- scrubs 3y agoLooking fwd to reading about rig. Consider pushing a standard for builds to the c++ committee. With modules on the table it's criminally bad c++ has no eta to get substantially closer to golang like builds.
- bsder 3y agoEven worse, I have yet to see a build system that screams at you when there is a file where it shouldn't be. Yes, I want my build fast. However, give me a way to kick off a scan to look for extraneous stuff.
- tom_ 3y agoThat's a good idea too. For my smaller-scale personal projects I rely on the git status, but if you use some other version control system then you don't always get early warning of this sort of thing. (My work stuff typically uses Perforce, and it's annoyingly blasé about this stuff.)
- kazinator 3y agoYeah, that's intellectually right there with: "Say you mention a new variable. Wouldn't it be nice if the language just defined it for you with a blank value?"
- Eduard 3y agoconvention over configuration. why would you put a file "foo.c" into directory "src/" if you don't want to have it compiled? put it somewhere else then.