3
on: February 27, 2019, 10:51:30 am
Hey,
Thanks for the 4.21 release! This mostly works however, when building from source with clean intermediate files I am getting a number of compilation errors, it appears that these errors are related to missing include files, perhaps from the move to ICWYU mode?
See below for a list of files which are missing includes.
Runtime/Substance/Source/SubstanceCore/Private/SubstanceCallbacks.h
- #include "CoreMinimal.h" is missing for the TArray
Runtime/Substance/Source/SubstanceCore/Private/SubstanceCoreCustomVersion.cpp
- #include "Serialization/CustomVersion.h" is missing for the FCustomVersionRegistration
Runtime/Substance/Source/SubstanceCore/Private/SubstanceCoreCustomVersion.h
- #include "Misc/Guid.h" is missing for the FGuid
Runtime/Substance/Source/SubstanceCore/Private/SubstanceCoreHelpers.cpp
- SubstanceCorePrivatePCH.h and SubstanceCoreHelpers.h order needs to be swapped as a work around to the problems in SubstanceCoreHelpers.h
- #include "RenderUtils.h" is missing for the GPixel variable
Runtime/Substance/Source/SubstanceCore/Private/SubstanceGraphInstance.cpp
- #include "AssetToolsModule.h" is missing for the FAssetToolsModule reference
Runtime/Substance/Source/SubstanceCore/Private/SubstanceImageInput.cpp
- #include "HAL/FileManager.h" is missing for the IFileManager reference
Runtime/Substance/Source/SubstanceCore/Private/SubstanceStructuresSerialization.h
- #include "CoreMinimal.h" is missing for the FArchive reference
Runtime/Substance/Source/SubstanceCore/Private/SubstanceTexture2D.cpp
- #include "RenderUtils.h" is missing for the GPixel variable
Runtime/Substance/Source/SubstanceCore/Public/SubstanceCoreHelpers.h
- #include "CoreMinimal.h" is missing for the TMap reference (and others)
- #include "PixelFormat.h" is missing for the EPixelFormat reference
- class UMaterial; is missing as a forward declaration
- class UMaterialInstance; is missing as a forward declaration
- This header relies on SUBSTANCE_FRAMEWORK_INCLUDED being defined before its inclusion, this is currently only defined in the PCH, this means that the include order in SubstanceCoreHelpers.cpp cannot satisfy ICWYU requirements
Runtime/Substance/Source/SubstanceCore/SubstanceCore.Build.cs
- bEnforceIWYU needs to be disabled in order to work around the problem with SubstanceCoreHelpers.cpp
Cheers!