Description

Packaging an Engine plugin fails if another Engine plugin lists that plugin as a private dependency. In the two attached plugins, PluginA lists PluginB as a required plugin in its .uplugin file, and has PluginB listed as a private dependency in its Build.cs file. Attempting to package PluginB results in the package process failing with a somewhat confusing error message. The error message states that Engine module PluginA (which is not being packaged) should not depend on game module PluginB (which is an Engine plugin, not a game plugin).

Attempting to package PluginA completes successfully.

REGRESSION:
No. A separate issue prevented this plugin from being packaged in 4.20. That was fixed in 4.21 which made this issue visible.

Steps to Reproduce

Note: This repro includes two custom Engine plugins. The same behavior can be seen in 4.21 when attempting to package the MagicLeap plugin.

REPRO:

  1. Place both of the plugins (PluginA and PluginB) in the attached Plugins.zip into the Engine/Plugins directory. Both plugins were created in Main at CL 4555827.
  2. Build the Engine to make sure the plugins are built.
  3. Open any project that uses the same version of the Engine that the plugins were added to.
  4. Open the Plugins window.
  5. Locate PluginB in the Other category.
  6. Package PluginB.

RESULT:
The packaging process fails with the following error message: ERROR: Engine module 'Engine\Plugins\PluginA\Source\PluginA\PluginA.Build.cs' should not depend on game module 'C:\Plugins\PluginB\HostProject\Plugins\PluginB\Source\PluginB\PluginB.Build.cs' (in this case C:\Plugins is the location I was packaging the plugin to)

EXPECTED:
The plugin packages successfully.

Have Comments or More Details?

There's no existing public thread on this issue, so head over toAnswerHub just mention UE-66403 in the post.

6
Login to Vote

Backlogged
ComponentDevTools - Plugins
Affects Versions4.214.22
CreatedNov 12, 2018
UpdatedNov 12, 2018