Mac - Running GenerateProjectFiles second time leads to plugin header file build errors

On Mac, running GenerateProjectFiles a second time leads to header file build errors (primarily from built-in and third-party plugins), like the following.

Running command : Engine/Binaries/DotNET/UnrealBuildTool.exe SlateViewer Mac Development -deploy /Users/buildbot/macos-slave-1/macos-build/build/UnrealEngine4/GameProject/Descent.uproject
Compiling with Mac SDK 10.10
Performing 74 actions (8 in parallel)
[2/74] Compile Module.Slate.2_of_4.cpp
[3/74] Compile Module.WebBrowser.cpp
[4/74] Compile Module.Slate.1_of_4.cpp
[1/74] Compile Module.Slate.3_of_4.cpp
[5/74] Compile Module.AppFramework.cpp
[6/74] Compile Module.Slate.4_of_4.cpp
[7/74] Compile Module.SlateViewer.cpp
[8/74] Compile Module.SlateReflector.cpp
In file included from /Users/buildbot/macos-slave-1/macos-build/build/UnrealEngine4/GameProject/Intermediate/Build/Mac/SlateViewer/Development/SlateReflector/Module.SlateReflector.cpp:2:
In file included from /Users/buildbot/macos-slave-1/macos-build/build/UnrealEngine4/Engine/Source/Developer/SlateReflector/Private/SlateReflectorModule.cpp:3:
In file included from Developer/SlateReflector/Private/SlateReflectorPrivatePCH.h:11:
In file included from Runtime/InputCore/Public/InputCore.h:6:
Runtime/InputCore/Public/../Classes/InputCoreTypes.h:5:10: fatal error: 'InputCoreTypes.generated.h' file not found
#include "InputCoreTypes.generated.h"

As a workaround, I found I could I make my build system only run GenerateProjectFiles after a totally clean build setup (basically a fresh copy or source checked out of source control, with no previous files from Setup, GenerateProjectFiles, or a build, cook, or package). This seems to avoid the bug.

Unfortunately is also means incremental builds for faster builds and continual integration break frequently. :frowning:

Here is an example of a third-party plugin build break on Mac after second GenerateProjectFiles run. It builds fine on Windows and Linux, and on Mac using workaround below:

[482/786] Compile Module.IOSTargetPlatform.cpp
[483/786] Compile Module.DesktopTargetPlatform.cpp
In file included from /Users/buildbot/macos-slave-1/macos-build/build/UnrealEngine4/GameProject/Plugins/JoystickPlugin/Source/JoystickPlugin/Private/JoystickPlugin.cpp:2:
In file included from /Users/buildbot/macos-slave-1/macos-build/build/UnrealEngine4/GameProject/Plugins/JoystickPlugin/Source/JoystickPlugin/Private/JoystickPlugin.h:6:
In file included from /Users/buildbot/macos-slave-1/macos-build/build/UnrealEngine4/GameProject/Plugins/JoystickPlugin/Source/JoystickPlugin/Private/JoystickDevice.h:4:
../../GameProject/Plugins/JoystickPlugin/Source/JoystickPlugin/Public/JoystickInterface.h:3:10: fatal error: 'JoystickInterface.generated.h' file not found
#include "JoystickInterface.generated.h"