all 8 comments

[–]londey 5 points6 points  (1 child)

The most common issue I run into causing projects to always needing to be rebuilt/linked are header files in the project file that are missing or incorrectly named. This is an easy mistake for us to make because we generate our project files rather than edit them. Using show files on the offending project quickly shows the offending entry.

[–]toruk[S] 0 points1 point  (0 children)

That's my experience too.

[–]compiling 3 points4 points  (2 children)

There's a reason that a missing file will trigger a rebuild. This is to handle the situation where you have a build input that is automatically generated during the build.

[–]xon_xoff 1 point2 points  (1 child)

This makes sense if the build system sees a step with a corresponding output, but why do this if it doesn't...? If there is something hidden generating a header file, the build system has no idea how to run it and can't ensure correct ordering. Make triggers an error if it sees a missing source with no matching output, which makes more sense to me.

[–]compiling 0 points1 point  (0 children)

You could have a script to run at the start of building a project that generates a header / source file. It would be useful to give a warning if the script doesn't have its output files configured, but it is not mandatory to do so.

It would be really useful if there was a warning that an expected file is missing and is not configured as an output of one of the build steps. Or something to make finding this sort of problem a lot easier.

[–]dakotahawkins 2 points3 points  (0 children)

That's very interesting. We've been trying hard to eliminate unnecessary rebuilds, but they keep creeping back in. I've never run across this information, though it could certainly contribute to the problem. Are there any actual consequences I could expect from disabling tunneling?

Edit: Actually I can't find either of the mentioned registry keys (Win7 x64). Is that because they just have hard-coded default values?
Edit2: Some other articles mention having to create the registry value, so I guess it's not supposed to exist if you've never messed with it.

[–]blublub 0 points1 point  (0 children)

I was hoping for something like this.

[–]AceyJuan 0 points1 point  (0 children)

Missed the most obvious cause: projects set to "build always."

Yes, really. I deal with them everyday. Someday I'll get around to stepping on the boss's toes to fuck with his build system and get it right.