[4.8.0 P1] Visual doesn't build project dependencies

Hi,

After updating to 4.8.0 P1, my project no longer builds. Aside from the API changes that were dealt with, the loading screen of the game is not built anymore.

Here is the log output (“Flare” is my game name).

1 Cleaning FlareEditor Binaries…

1 Creating makefile for FlareEditor (no existing makefile)

1 Performing full C++ include scan (no include cache file)

1 Parsing headers for FlareEditor

1 Reflection code generated for FlareEditor

1 Performing 11 actions (4 in parallel)

1 [3/11] Resource ModuleVersionResource.rc.inl

1 [2/11] Resource Flare.rc

1 PCH.Flare.h.cpp

1 PCH.InternalComponentVisualizerPCH.h.cpp

1 [6/11] Resource PCLaunch.rc

1 [7/11] Resource ModuleVersionResource.rc.inl

1 InternalComponentVisualizer.cpp

1 Module.Flare.cpp

1 Flare.generated.cpp

1 [10/11] Link UE4Editor-Flare.dll

1LINK : fatal error LNK1181: cannot open input file ‘D:\Flare\Intermediate/Build/Win64\UE4Editor\Development\UE4Editor-FlareLoadingScreen.lib’

So basically, the “Flare” project is built before the “FlareLoadingScreen” project, which looks wrong. Here is the .cs build file for Flare :

using UnrealBuildTool;

public class Flare : ModuleRules
{
	public Flare(TargetInfo Target)
	{
        PublicDependencyModuleNames.AddRange(
            new string[] {
				"Core",
				"CoreUObject",
				"Engine",
				"OnlineSubsystem",
				"OnlineSubsystemUtils",
			}
        );

        PrivateDependencyModuleNames.AddRange(
            new string[] {
				"InputCore",
				"Slate",
				"SlateCore",
				"FlareLoadingScreen",
			}
        );

        DynamicallyLoadedModuleNames.Add("OnlineSubsystemSteam");
	}
}

I’m using Visual Studio 2013 with the prebuilt binary release for 4.8.0 P1.

Hi Gwenn,

To begin helping you with this issue, I first need to try to reproduce it. I attempted using an old project with module dependencies and upgrading it to 4.8.0 P1 but didn’t get he same error you did. Could you provide me with your project? If the project is too large for answerhub’s limit, please feel free to use DropBox or another file hosting site.

Thanks,

Hi ,

Here is a minimal project sample that reproduces the issue. it seems that the presence of a plugin breaks the build process - deleting the plugin will enable the project to compile fine.

Thanks
minimal project

Using the project you provided, I’m able to build the solution without any issues. The only issue I run into is when I attempt to launch the project in the editor, but this may be due to missing this plugin that you mentioned. What plugin are you using that is causing the issue to persist?

Well I can’t build this project with Visual Studio 2013 Express and 4.8.0 P1/P2. 4.7.6 works fine.

The plugin is in the Plugins folder in the provided project. The project not being able to launch is expected, it’s really just a working example to reproduce the bug.

As you previously mentioned, it seems that the plugin itself is causing the issue instead of the editor. The plugin, from what I can tell, is a third party plugin. If this is the case, you’ll need to report this issue to the developer of the plugin, as they most likely need to update it to be compatible with 4.8.0 Preview 1 and/or 2.

,

The plugin source is inside the archive, in the Plugins\InternalComponentVisualizer folder. We made it ourselves, so there is no one to report the issue to. What is there to change in the UPLUGIN file to get the new compatibility ?

The plugin itself does build, it just seems to make Unreal forget about the other subproject.

Since the plugin is part of the project, I don’t understand why it does build on your computer.

I do encounter the issue as well if the plugin is present when building in the 4.8.0 P2 environment. Seeing as we’ve identified the problem, the plugin causing the load order (Or lack of loading the .cpp and .h for FlareLoadingScreen) to be incorrect, I’ll continue investigating that specifically. Thank you for your patience so far.

Hi ,

Any new on this ? I just saw that this issue is not inn the known bugs for Preview 3 - but it still reproduces on this version.

I’m still looking into the issue, but it is taking a while. I apologize for the wait. I’ll let you know as soon as I find anything new.

I sound like a broken record at this point, but I would like to reach out and say that I am still looking into a solution.

Hi , thank you for keeping me informed. Do you believe the bug could be fixed with the 4.8 release ?

This is a nasty bug caused by the way we precompile modules for the binary release.

In 4.8 we added the concept of “precompiling” certain modules, which allows you to avoid rebuilding parts of your game. We use the same code to compile plugins into static libraries, and to generate the engine distribution that you can download from the launcher. Unfortunately, because your plugin references your game module, and because that game module is the only thing that references your LoadingScreen module, it happens to end up treating your LoadingScreen module as a precompiled part of the engine.

The easiest way to work around it is to add “FlareLoadingScreen” into the ExtraModules list in your FlareEditor.Target.cs file, just under where you add the “Flare” module. I’ll add a task to implement a proper fix.

The workaround does correct the issue.

Thank you Ben & !