adamrehn / conan-ue4cli

Integrate third-party libraries into the Unreal Engine with Conan
https://docs.adamrehn.com/conan-ue4cli/
MIT License
87 stars 20 forks source link

WrapperModule.Build.cs(87,6) : error CS1501: No overload for method 'Add' takes 3 arguments #12

Open slonopotamus opened 3 years ago

slonopotamus commented 3 years ago

Way to reproduce

  1. Windows
  2. ue4-docker build 4.20.3 --no-engine --exclude debug --exclude ddc --exclude templates
  3. ue4-docker test 4.20.3

Expected

ue4-docker test passes

Actual

While compiling C:\Users\ContainerAdministrator\AppData\Local\Temp\tmp3yco9x9h\BasicCxx\Intermediate\Build\BuildRules\BasicCxxModuleRules.dll:
c:\Users\ContainerAdministrator\AppData\Local\temp\tmp3yco9x9h\BasicCxx\Source\WrapperModule\WrapperModule.Build.cs(87,6) : error CS1501: No overload for method 'Add' takes 3 arguments
c:\Users\ContainerAdministrator\AppData\Local\temp\tmp3yco9x9h\BasicCxx\Source\WrapperModule\WrapperModule.Build.cs(97,6) : error CS1501: No overload for method 'Add' takes 3 arguments
c:\Users\ContainerAdministrator\AppData\Local\temp\tmp3yco9x9h\BasicCxx\Source\WrapperModule\WrapperModule.Build.cs(149,5) : error CS1501: No overload for method 'Add' takes 3 arguments
c:\Users\ContainerAdministrator\AppData\Local\temp\tmp3yco9x9h\BasicCxx\Source\WrapperModule\WrapperModule.Build.cs(173,4) : error CS1501: No overload for method 'Add' takes 3 arguments

In 4.20, RuntimeDependencyList in fact doesn't have 3-arg Add method.

conan-ue4cli selects v2 template for 4.20.

And v2 template tries to call 3-arg Add method.

Note that even v1 template does the same thing, so 4.19 is broken the same way.

3-arg Add method was only added in 4.21: https://github.com/EpicGames/UnrealEngine/commit/2d3ea5e946fd004fad40624ba9f51b6d2a1b4875

Change 4234711 by Ben.Marsh

    UBT: Runtime dependencies can now be copied to output directories as part of the build. When adding a runtime dependency, an optional source location can be specified to copy from. Both the source and target paths can use variables can be used as part of the path, eg. $(OutputDir), $(ModuleDir), $(PluginDir).

    Example usage (from a .build.cs file):

    RuntimeDependencies.Add("$(OutputDir)/Foo.dll", "$(PluginDir)/Source/ThirdParty/Foo.dll", StagedFileType.NonUFS);

Broken by e10f74241d40c051cd1036a41f677a650dc03af7 + 2c3c9001285f248d6a18aa2fafbfc94d54540acd.