sideeffects / HoudiniEngineForUnreal

Houdini Engine Plugin for Unreal Engine.
http://www.sidefx.com/unreal
Other
1.32k stars 370 forks source link

Building for UE5 with Houdini 19.0.561 on Linux fails #174

Closed mrmowgli closed 2 years ago

mrmowgli commented 2 years ago

Compiling fails with Houdini Engine for Unreal on a new Fedora 35 install, with the (now publicly released) UE5 sources.

Copied this branch into the UnrealEngine/Engine/Plugins/Runtime/HoudiniEngine/ folder. Ran the script houdini_setup_bash in the /opt/hfs19.0/ folder.

Ran UE's GenerateProjectFiles.sh.

Compiled with make targets:

make UnrealEditor UnrealEditor-Linux-Debug UnrealFrontend UnrealFrontend-Linux-Debug 

And the compile failed.

make UnrealEditor UnrealEditor-Linux-Debug UnrealFrontend UnrealFrontend-Linux-Debug 
bash "/home/UnrealEngine/Engine/Build/BatchFiles/Linux/Build.sh" UnrealEditor Linux Development  
Setting up bundled DotNet SDK
Microsoft (R) Build Engine version 17.1.0+ae57d105c for .NET
Copyright (C) Microsoft Corporation. All rights reserved.

Build succeeded.
    0 Warning(s)
    0 Error(s)

Time Elapsed 00:00:02.15
Running command : dotnet Engine/Binaries/DotNET/UnrealBuildTool/UnrealBuildTool.dll UnrealEditor Linux Development
Log file: /home/UnrealEngine/Engine/Programs/UnrealBuildTool/Log.txt
Using 'git status' to determine working set for adaptive non-unity build (/home/UnrealEngine).
Invalidating makefile for UnrealEditor (HoudiniEngine.Build.cs modified)
Houdini Engine : Found Houdini in /opt/hfs19.0
Creating makefile for UnrealHeaderTool (no existing makefile)
------- Build details --------
Using toolchain located at '/home/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v19_clang-11.0.1-centos7/x86_64-unknown-linux-gnu'.
Using clang (/home/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v19_clang-11.0.1-centos7/x86_64-unknown-linux-gnu/bin/clang++) version '11.0.1' (string), 11 (major), 0 (minor), 1 (patch)
Using bundled libc++ standard C++ library.
Using lld linker
Using llvm-ar : /home/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v19_clang-11.0.1-centos7/x86_64-unknown-linux-gnu/bin/llvm-ar
Using fast way to relink  circularly dependent libraries (no FixDeps).
------------------------------
Parsing headers for UnrealEditor
  Running UnrealHeaderTool UnrealEditor "/home/UnrealEngine/Engine/Intermediate/Build/Linux/B4D820EA/UnrealEditor/Development/UnrealEditor.uhtmanifest" -LogCmds="loginit warning, logexit warning, logdatabase error" -Unattended -WarningsAsErrors -abslog="/home/UnrealEngine/Engine/Programs/UnrealBuildTool/Log_UHT.txt"
Reflection code generated for UnrealEditor in 3.9671803 seconds
------- Build details --------
Using toolchain located at '/home/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v19_clang-11.0.1-centos7/x86_64-unknown-linux-gnu'.
Using clang (/home/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v19_clang-11.0.1-centos7/x86_64-unknown-linux-gnu/bin/clang++) version '11.0.1' (string), 11 (major), 0 (minor), 1 (patch)
Using bundled libc++ standard C++ library.
Using lld linker
Using llvm-ar : /home/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v19_clang-11.0.1-centos7/x86_64-unknown-linux-gnu/bin/llvm-ar
Using fast way to relink  circularly dependent libraries (no FixDeps).
------------------------------
Building UnrealEditor...
Determining max actions to execute in parallel (8 physical cores, 8 logical cores)
  Executing up to 8 processes, one per physical core
Building 28 actions with 8 processes...
[1/28] Compile PCH.HoudiniEngine.h
[2/28] Compile PCH.HoudiniEngineRuntime.h
[3/28] Compile PCH.HoudiniEngineEditor.h
[4/28] Compile Module.HoudiniEngine.6_of_6.cpp
[5/28] Compile Module.HoudiniEngine.gen.cpp
[6/28] Compile Module.HoudiniEngineRuntime.gen.5_of_5.cpp
[7/28] Compile Module.HoudiniEngine.1_of_6.cpp
[8/28] Compile Module.HoudiniEngine.5_of_6.cpp
In file included from ../Plugins/Runtime/HoudiniEngine/Intermediate/Build/Linux/B4D820EA/UnrealEditor/Development/HoudiniEngine/Module.HoudiniEngine.5_of_6.cpp:14:
/home/UnrealEngine/Engine/Plugins/Runtime/HoudiniEngine/Source/HoudiniEngine/Private/UnrealMeshTranslator.cpp:3707:19: error: member access into incomplete type 'TArray<FDynamicMeshVertex, TSizedDefaultAllocator<32>>::ElementType' (aka 'FDynamicMeshVertex')
                        VertexBuffer[i].Position =  (FVector3f)(TransformOffset + (RotationOffset * (ScaleOffset * (FVector3d)VertexBuffer[i].Position)));
                                       ^
/home/UnrealEngine/Engine/Source/Runtime/Engine/Public/SceneManagement.h:51:8: note: forward declaration of 'FDynamicMeshVertex'
struct FDynamicMeshVertex;
       ^
In file included from ../Plugins/Runtime/HoudiniEngine/Intermediate/Build/Linux/B4D820EA/UnrealEditor/Development/HoudiniEngine/Module.HoudiniEngine.5_of_6.cpp:14:
/home/UnrealEngine/Engine/Plugins/Runtime/HoudiniEngine/Source/HoudiniEngine/Private/UnrealMeshTranslator.cpp:3714:40: error: member access into incomplete type 'FDynamicMeshVertex'
                        Vertices[CurIndex * 3 + 0] = CurVert.Position.X / HAPI_UNREAL_SCALE_FACTOR_POSITION;
                                                            ^
/home/UnrealEngine/Engine/Source/Runtime/Engine/Public/SceneManagement.h:51:8: note: forward declaration of 'FDynamicMeshVertex'
struct FDynamicMeshVertex;
       ^
In file included from ../Plugins/Runtime/HoudiniEngine/Intermediate/Build/Linux/B4D820EA/UnrealEditor/Development/HoudiniEngine/Module.HoudiniEngine.5_of_6.cpp:14:
/home/UnrealEngine/Engine/Plugins/Runtime/HoudiniEngine/Source/HoudiniEngine/Private/UnrealMeshTranslator.cpp:3715:40: error: member access into incomplete type 'FDynamicMeshVertex'
                        Vertices[CurIndex * 3 + 1] = CurVert.Position.Z / HAPI_UNREAL_SCALE_FACTOR_POSITION;
                                                            ^
/home/UnrealEngine/Engine/Source/Runtime/Engine/Public/SceneManagement.h:51:8: note: forward declaration of 'FDynamicMeshVertex'
struct FDynamicMeshVertex;
       ^
In file included from ../Plugins/Runtime/HoudiniEngine/Intermediate/Build/Linux/B4D820EA/UnrealEditor/Development/HoudiniEngine/Module.HoudiniEngine.5_of_6.cpp:14:
/home/UnrealEngine/Engine/Plugins/Runtime/HoudiniEngine/Source/HoudiniEngine/Private/UnrealMeshTranslator.cpp:3716:40: error: member access into incomplete type 'FDynamicMeshVertex'
                        Vertices[CurIndex * 3 + 2] = CurVert.Position.Y / HAPI_UNREAL_SCALE_FACTOR_POSITION;
                                                            ^
/home/UnrealEngine/Engine/Source/Runtime/Engine/Public/SceneManagement.h:51:8: note: forward declaration of 'FDynamicMeshVertex'
struct FDynamicMeshVertex;
       ^
In file included from ../Plugins/Runtime/HoudiniEngine/Intermediate/Build/Linux/B4D820EA/UnrealEditor/Development/HoudiniEngine/Module.HoudiniEngine.5_of_6.cpp:1:
In file included from /home/UnrealEngine/Engine/Source/../Plugins/Runtime/HoudiniEngine/Intermediate/Build/Linux/B4D820EA/UnrealEditor/Development/HoudiniEngine/PCH.HoudiniEngine.h:350:
In file included from ../Plugins/Runtime/HoudiniEngine/Source/HoudiniEngine/Private/HoudiniEnginePrivatePCH.h:31:
In file included from ../Plugins/Runtime/HoudiniEngine/Source/HoudiniEngineRuntime/Private/HoudiniEngineRuntimePrivatePCH.h:29:
In file included from Runtime/Core/Public/CoreMinimal.h:33:
In file included from /home/UnrealEngine/Engine/Source/Runtime/Core/Public/HAL/MemoryBase.h:9:
In file included from Runtime/Core/Public/Templates/Atomic.h:8:
In file included from /home/UnrealEngine/Engine/Source/Runtime/Core/Public/Templates/IsTrivial.h:6:
/home/UnrealEngine/Engine/Source/Runtime/Core/Public/Templates/IsTriviallyDestructible.h:18:18: error: incomplete type 'FDynamicMeshVertex' used in type trait expression
                enum { Value = __has_trivial_destructor(T) };
                               ^
/home/UnrealEngine/Engine/Source/Runtime/Core/Public/Templates/IsTriviallyDestructible.h:28:61: note: in instantiation of template class 'UE::Core::Private::IsTriviallyDestructible::TImpl<FDynamicMeshVertex, false>' requested here
        enum { Value = UE::Core::Private::IsTriviallyDestructible::TImpl<T>::Value };
                                                                   ^
/home/UnrealEngine/Engine/Source/Runtime/Core/Public/Templates/MemoryOps.h:90:17: note: in instantiation of template class 'TIsTriviallyDestructible<FDynamicMeshVertex>' requested here
        if constexpr (!TIsTriviallyDestructible<ElementType>::Value)
                       ^
/home/UnrealEngine/Engine/Source/Runtime/Core/Public/Containers/Array.h:612:3: note: in instantiation of function template specialization 'DestructItems<FDynamicMeshVertex, int>' requested here
                DestructItems(GetData(), ArrayNum);
                ^
/home/UnrealEngine/Engine/Plugins/Runtime/HoudiniEngine/Source/HoudiniEngine/Private/UnrealMeshTranslator.cpp:3701:30: note: in instantiation of member function 'TArray<FDynamicMeshVertex, TSizedDefaultAllocator<32>>::~TArray' requested here
                TArray<FDynamicMeshVertex> VertexBuffer;
                                           ^
/home/UnrealEngine/Engine/Source/Runtime/Engine/Public/SceneManagement.h:51:8: note: forward declaration of 'FDynamicMeshVertex'
struct FDynamicMeshVertex;
       ^
In file included from ../Plugins/Runtime/HoudiniEngine/Intermediate/Build/Linux/B4D820EA/UnrealEditor/Development/HoudiniEngine/Module.HoudiniEngine.5_of_6.cpp:1:
In file included from /home/UnrealEngine/Engine/Source/../Plugins/Runtime/HoudiniEngine/Intermediate/Build/Linux/B4D820EA/UnrealEditor/Development/HoudiniEngine/PCH.HoudiniEngine.h:350:
In file included from ../Plugins/Runtime/HoudiniEngine/Source/HoudiniEngine/Private/HoudiniEnginePrivatePCH.h:31:
In file included from ../Plugins/Runtime/HoudiniEngine/Source/HoudiniEngineRuntime/Private/HoudiniEngineRuntimePrivatePCH.h:29:
In file included from Runtime/Core/Public/CoreMinimal.h:59:
In file included from Runtime/Core/Public/Misc/Compression.h:6:
In file included from Runtime/Core/Public/UObject/NameTypes.h:10:
In file included from Runtime/Core/Public/Containers/UnrealString.h:18:
/home/UnrealEngine/Engine/Source/Runtime/Core/Public/Containers/Array.h:747:10: error: subscript of pointer to incomplete type 'TArray<FDynamicMeshVertex, TSizedDefaultAllocator<32>>::ElementType' (aka 'FDynamicMeshVertex')
                return GetData()[Index];
                       ^~~~~~~~~
/home/UnrealEngine/Engine/Plugins/Runtime/HoudiniEngine/Source/HoudiniEngine/Private/UnrealMeshTranslator.cpp:3707:16: note: in instantiation of member function 'TArray<FDynamicMeshVertex, TSizedDefaultAllocator<32>>::operator[]' requested here
                        VertexBuffer[i].Position =  (FVector3f)(TransformOffset + (RotationOffset * (ScaleOffset * (FVector3d)VertexBuffer[i].Position)));
                                    ^
/home/UnrealEngine/Engine/Source/Runtime/Engine/Public/SceneManagement.h:51:8: note: forward declaration of 'FDynamicMeshVertex'
struct FDynamicMeshVertex;
       ^
In file included from ../Plugins/Runtime/HoudiniEngine/Intermediate/Build/Linux/B4D820EA/UnrealEditor/Development/HoudiniEngine/Module.HoudiniEngine.5_of_6.cpp:1:
In file included from /home/UnrealEngine/Engine/Source/../Plugins/Runtime/HoudiniEngine/Intermediate/Build/Linux/B4D820EA/UnrealEditor/Development/HoudiniEngine/PCH.HoudiniEngine.h:350:
In file included from ../Plugins/Runtime/HoudiniEngine/Source/HoudiniEngine/Private/HoudiniEnginePrivatePCH.h:31:
In file included from ../Plugins/Runtime/HoudiniEngine/Source/HoudiniEngineRuntime/Private/HoudiniEngineRuntimePrivatePCH.h:29:
In file included from Runtime/Core/Public/CoreMinimal.h:59:
In file included from Runtime/Core/Public/Misc/Compression.h:6:
In file included from Runtime/Core/Public/UObject/NameTypes.h:10:
In file included from Runtime/Core/Public/Containers/UnrealString.h:18:
/home/UnrealEngine/Engine/Source/Runtime/Core/Public/Containers/Array.h:2645:112: error: arithmetic on a pointer to an incomplete type 'TArray<FDynamicMeshVertex, TSizedDefaultAllocator<32>>::ElementType' (aka 'FDynamicMeshVertex')
                FORCEINLINE RangedForIteratorType      end  ()       { return RangedForIteratorType     (ArrayNum, GetData() + Num()); }
                                                                                                                   ~~~~~~~~~ ^
/home/UnrealEngine/Engine/Plugins/Runtime/HoudiniEngine/Source/HoudiniEngine/Private/UnrealMeshTranslator.cpp:3712:22: note: in instantiation of member function 'TArray<FDynamicMeshVertex, TSizedDefaultAllocator<32>>::end' requested here
                for (auto& CurVert : VertexBuffer)
                                   ^
/home/UnrealEngine/Engine/Source/Runtime/Engine/Public/SceneManagement.h:51:8: note: forward declaration of 'FDynamicMeshVertex'
struct FDynamicMeshVertex;
       ^
In file included from ../Plugins/Runtime/HoudiniEngine/Intermediate/Build/Linux/B4D820EA/UnrealEditor/Development/HoudiniEngine/Module.HoudiniEngine.5_of_6.cpp:1:
In file included from /home/UnrealEngine/Engine/Source/../Plugins/Runtime/HoudiniEngine/Intermediate/Build/Linux/B4D820EA/UnrealEditor/Development/HoudiniEngine/PCH.HoudiniEngine.h:350:
In file included from ../Plugins/Runtime/HoudiniEngine/Source/HoudiniEngine/Private/HoudiniEnginePrivatePCH.h:31:
In file included from ../Plugins/Runtime/HoudiniEngine/Source/HoudiniEngineRuntime/Private/HoudiniEngineRuntimePrivatePCH.h:29:
In file included from Runtime/Core/Public/CoreMinimal.h:59:
In file included from Runtime/Core/Public/Misc/Compression.h:6:
In file included from Runtime/Core/Public/UObject/NameTypes.h:10:
In file included from Runtime/Core/Public/Containers/UnrealString.h:18:
/home/UnrealEngine/Engine/Source/Runtime/Core/Public/Containers/Array.h:202:4: error: arithmetic on a pointer to an incomplete type 'FDynamicMeshVertex'
                        ++Ptr;
                        ^ ~~~
/home/UnrealEngine/Engine/Plugins/Runtime/HoudiniEngine/Source/HoudiniEngine/Private/UnrealMeshTranslator.cpp:3712:22: note: in instantiation of member function 'TCheckedPointerIterator<FDynamicMeshVertex, int>::operator++' requested here
                for (auto& CurVert : VertexBuffer)
                                   ^
/home/UnrealEngine/Engine/Source/Runtime/Engine/Public/SceneManagement.h:51:8: note: forward declaration of 'FDynamicMeshVertex'
struct FDynamicMeshVertex;
       ^
8 errors generated.
[9/28] Compile Module.HoudiniEngineRuntime.gen.1_of_5.cpp
[10/28] Compile Module.HoudiniEngineRuntime.gen.3_of_5.cpp
[11/28] Compile Module.HoudiniEngineRuntime.gen.2_of_5.cpp
[12/28] Compile Module.HoudiniEngine.3_of_6.cpp
[13/28] Compile Module.HoudiniEngineRuntime.gen.4_of_5.cpp
[14/28] Compile Module.HoudiniEngine.4_of_6.cpp
[15/28] Compile Module.HoudiniEngineEditor.gen.2_of_3.cpp
[16/28] Compile Module.HoudiniEngine.2_of_6.cpp
[17/28] Compile Module.HoudiniEngineEditor.gen.3_of_3.cpp
[18/28] Compile Module.HoudiniEngineEditor.gen.1_of_3.cpp
[19/28] Compile Module.HoudiniEngineEditor.4_of_4.cpp
[20/28] Compile Module.HoudiniEngineRuntime.cpp
[21/28] Link (lld) libUnrealEditor-HoudiniEngineRuntime.so
[22/28] Link (lld) libUnrealEditor-HoudiniEngine.so cancelled
[23/28] Compile Module.HoudiniEngineEditor.1_of_4.cpp
In file included from ../Plugins/Runtime/HoudiniEngine/Intermediate/Build/Linux/B4D820EA/UnrealEditor/Development/HoudiniEngineEditor/Module.HoudiniEngineEditor.1_of_4.cpp:7:
/home/UnrealEngine/Engine/Plugins/Runtime/HoudiniEngine/Source/HoudiniEngineEditor/Private/HoudiniEngineBakeUtils.cpp:7166:21: warning: 'FName' is deprecated: EFindName has been removed from constructors taking a Number argument to add clarity around UE_FNAME_OUTLINE_NUMBER. Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile. [-Wdeprecated-declarations]
                                CandidateName = FName(*InName, NAME_EXTERNAL_TO_INTERNAL(1), FNAME_Add, bSplitName);
                                                ^
/home/UnrealEngine/Engine/Source/Runtime/Core/Public/UObject/NameTypes.h:958:2: note: 'FName' has been explicitly marked deprecated here
        UE_DEPRECATED(5.1, "EFindName has been removed from constructors taking a Number argument to add clarity around UE_FNAME_OUTLINE_NUMBER.")
        ^
/home/UnrealEngine/Engine/Source/Runtime/Core/Public/Misc/CoreMiscDefines.h:232:43: note: expanded from macro 'UE_DEPRECATED'
#define UE_DEPRECATED(Version, Message) [[deprecated(Message " Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile.")]]
                                          ^
In file included from ../Plugins/Runtime/HoudiniEngine/Intermediate/Build/Linux/B4D820EA/UnrealEditor/Development/HoudiniEngineEditor/Module.HoudiniEngineEditor.1_of_4.cpp:7:
/home/UnrealEngine/Engine/Plugins/Runtime/HoudiniEngine/Source/HoudiniEngineEditor/Private/HoudiniEngineBakeUtils.cpp:7166:21: warning: 'FName' is deprecated: EFindName has been removed from constructors taking a Number argument to add clarity around UE_FNAME_OUTLINE_NUMBER. Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile. [-Wdeprecated-declarations]
                                CandidateName = FName(*InName, NAME_EXTERNAL_TO_INTERNAL(1), FNAME_Add, bSplitName);
                                                ^
/home/UnrealEngine/Engine/Source/Runtime/Core/Public/UObject/NameTypes.h:958:2: note: 'FName' has been explicitly marked deprecated here
        UE_DEPRECATED(5.1, "EFindName has been removed from constructors taking a Number argument to add clarity around UE_FNAME_OUTLINE_NUMBER.")
        ^
/home/UnrealEngine/Engine/Source/Runtime/Core/Public/Misc/CoreMiscDefines.h:232:43: note: expanded from macro 'UE_DEPRECATED'
#define UE_DEPRECATED(Version, Message) [[deprecated(Message " Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile.")]]
                                          ^
2 warnings generated.
[24/28] Compile Module.HoudiniEngineEditor.3_of_4.cpp
[25/28] Compile Module.HoudiniEngineEditor.2_of_4.cpp
[26/28] Link (lld) libUnrealEditor-HoudiniEngineEditor.so cancelled
[27/28] WriteMetadata UnrealEditor.version cancelled
[28/28] WriteMetadata UnrealEditor.target cancelled
make: *** [Makefile:1288: UnrealEditor] Error 6
mrmowgli commented 2 years ago

I'm not sure if this got fixed but I recloned the repo, reran the steps with the UE5 release and the Houdini daily build, and it appears to compile fine now. Thanks! Closing this issue.