@JacobNovitsky Just so that you understand why only changed source files are recompiled you need to understand three things:
qmake creates a Makefile from your PROject file. (So does cmake in many circumstances).
Make is a tool designed to reduce compilation times, something about which you have been vocal before, using the rules in the Makefile to minimise what is recompiled and/or relinked.
The compiler (linker) can only issue warnings about source code (objects and libraries) if it is compiling source code (linking object files).
Since changing any source code file will change its corresponding object file, and the output executable depends on all its input object files, the linker is almost always run by make in the Qt environment.
You should be striving to make code in which no warnings are issued at all. This is why @J-Hilk suggests -Werror.