s_stuff.h.in is bad
PD_BUILD_VERSION
needs to be moved from s_stuff.h.in into its own file like s_version.h.in or something.
The problem is that there is a lot of other functionality inside s_stuff.h, and a developer (like me) is very likely to just go to town on s_stuff.h forgetting that it's generated by s_stuff.h.in.
Then when doing git status
the changes to s_stuff.h aren't listed in the "Changes not staged for commit." That's because s_stuff.h isn't tracked-- it's auto-generated. That makes it extremely easy to commit, completely forgetting about one's changes to s_stuff.h and consequently losing data.
Alternatively, if you just do git add .
you'd end up tracking the autogenerated s_stuff.h file and then get confused when those changes end up getting overwritten in the CI by s_stuff.h.in.
Either way, it's way better to cordon off the auto-generated version number into its own header that nobody is ever likely to touch.