The log file lists the actions which are outdated and needs to be triggered. In particular, I see these lines:
SharedPCH.UnrealEd.cpp: Prerequisite SharedPCH.UnrealEd.h.pch.response is newer than the last execution of the action: 18/08/2017 18:22:17 vs 02/08/2017 17:00:13 SharedPCH.Engine.cpp: Prerequisite SharedPCH.Engine.h.pch.response is newer than the last execution of the action: 18/08/2017 18:22:17 vs 02/08/2017 17:00:14 SharedPCH.CoreUObject.cpp: Prerequisite SharedPCH.CoreUObject.h.pch.response is newer than the last execution of the action: 18/08/2017 18:22:17 vs 02/08/2017 16:59:51 PCH.Core.cpp: Prerequisite PCH.Core.h.pch.response is newer than the last execution of the action: 18/08/2017 18:22:20 vs 02/08/2017 16:59:50
Those PCHs are used by everything, so that looks like what’s causing the full rebuild. To diagnose the problem, you could diff those .response files between builds from different programs.
It’s possible that some target that you’re building is forcing a define on which is invalidating the PCHs used by another target.