Announcement

Collapse
No announcement yet.

IWYU adds Editor dependencies when packaging a project - build always fails? [libfbxsdk-md.lib]

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    IWYU adds Editor dependencies when packaging a project - build always fails? [libfbxsdk-md.lib]

    NB: Answerhub thread here - but no Epic response so far and the posted solutions from others don't work. https://answers.unrealengine.com/que...cannot-op.html

    ---

    I've recently switched one of my projects over to the IWYU system, by adding the following to my project.build.cs and all project-plugins:

    Code:
            PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
            bEnforceIWYU = true;
    My project is quite plugin heavy. I share code across multiple projects. Here's what the module dependencies look like in my project build.cs:

    Code:
     PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
            bEnforceIWYU = true;
    
            PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "OnlineSubSystem", "OnlineSubsystemUtils", "MoviePlayer", "GameplayTasks", "AIModule", "AssetRegistry", "MovieScene", "LevelSequence", "RHI", "RenderCore", "Navmesh", "HTTP", "ImageWrapper", "Slate", "SlateCore", "UMG" });
    
            // Custom Plugin Includes
            PublicDependencyModuleNames.AddRange(new string[] { "ST_Core"
                , "ST_Assertions"
                , "ST_OnlineCore"
                , "ST_OnlineFramework"
                , "ST_TeamFramework"
                , "ST_FX"
                , "ST_SoundVisualizer"
                , "ST_Spawn"
                , "ST_NetworkMovement"
                , "ST_UICore"
                , "ST_Scalability"
                , "ST_VirtualCursor"
                , "ST_SaveData"
                , "ST_PromptTutorial"});
    
            if (ROTargetRules.Type == TargetRules.TargetType.Editor)
            {
                PublicDependencyModuleNames.Add("UnrealEd");
            }
    
            if (Target.Platform == UnrealTargetPlatform.PS4)
            {
                DynamicallyLoadedModuleNames.Add("OnlineSubsystemPS4");
            }
            else if (Target.Platform == UnrealTargetPlatform.XboxOne)
            {
                DynamicallyLoadedModuleNames.Add("OnlineSubsystemLive");
            }
            else
            {
                DynamicallyLoadedModuleNames.Add("OnlineSubsystemSteam");
            }
    Now - this all builds just fine for the Editor, but when I try to package I have a missing lib "libfbxsdk-md.lib" - which makes no sense because that's part of the editor. This has ONLY started occurring since I specified IWYU. The problem is, when I remove IWYU, the problem doesn't go away. I've tried all the usual debugging steps, but I can't get any extra information.

    I have been totally unable to find out where this is coming from or what causes it - so looking for suggestions here. I've looked in all the logs, and this is all the information I get which is pretty useless. I've got no idea why or where the dependency is coming from.

    Code:
    UATHelper: Packaging (Windows (64-bit)): [243/243] Link ECGame-Win64-DebugGame.exe
    UATHelper: Packaging (Windows (64-bit)): LINK : fatal error LNK1181: cannot open input file 'libfbxsdk-md.lib'
    UATHelper: Packaging (Windows (64-bit)): ERROR: UBT ERROR: Failed to produce item: E:\P4\JBaxter_Work\Eclipse\Eclipse_Steam\ECGame\Binaries\Win64\ECGame-Win64-DebugGame.exe
    UATHelper: Packaging (Windows (64-bit)): Total build time: 121.53 seconds (Local executor: 0.00 seconds)
    UATHelper: Packaging (Windows (64-bit)): Took 121.6725937s to run UnrealBuildTool.exe, ExitCode=5
    UATHelper: Packaging (Windows (64-bit)): ERROR: Command failed (Result:5): C:\UE4_Builds\UE4_Eclipse\Engine\Binaries\DotNET\UnrealBuildTool.exe ECGame Win64 DebugGame -Project=E:\P4\JBaxter_Work\Eclipse\Eclipse_Steam\ECGame\ECGame.uproject E:\P4\JBaxter_Work\Eclipse\Eclipse_Steam\ECGame\ECGame.uproject -NoUBTMakefiles -remoteini="E:\P4\JBaxter_Work\Eclipse
    \Eclipse_Steam\ECGame" -skipdeploy -noxge -NoHotReload -ignorejunk. See logfile for details: 'UnrealBuildTool-2018.07.05-20.46.40.txt'
    UATHelper: Packaging (Windows (64-bit)): (see C:\Users\James\AppData\Roaming\Unreal Engine\AutomationTool\Logs\C+UE4_Builds+UE4_Eclipse\UAT_Log.txt for full exception trace)
    UATHelper: Packaging (Windows (64-bit)): AutomationTool exiting with ExitCode=5 (5)
    UATHelper: Packaging (Windows (64-bit)): BUILD FAILED
    PackagingResults: Error: Unknown Error
Working...
X