From de343aef26c888269b311d85ce5577d5ad4799dd Mon Sep 17 00:00:00 2001 From: game Date: Sat, 23 Mar 2024 11:09:18 +0800 Subject: [PATCH 1/2] 1.fix compile error on ue5.4 --- .../UnLua/Source/ThirdParty/Lua/Lua.Build.cs | 3 +++ Plugins/UnLua/Source/UnLua/Public/UnLuaEx.inl | 16 +++++++------- .../UnLua/Source/UnLua/Public/UnLuaLegacy.h | 8 +++---- .../UnLua/Source/UnLua/Public/UnLuaTemplate.h | 2 +- Source/TPSProject.Target.cs | 11 +++++++++- Source/TPSProjectEditor.Target.cs | 22 +++++++++++++++---- Source/TPSProjectServer.Target.cs | 6 +++++ 7 files changed, 50 insertions(+), 18 deletions(-) diff --git a/Plugins/UnLua/Source/ThirdParty/Lua/Lua.Build.cs b/Plugins/UnLua/Source/ThirdParty/Lua/Lua.Build.cs index c2db3e5f..1d79994e 100644 --- a/Plugins/UnLua/Source/ThirdParty/Lua/Lua.Build.cs +++ b/Plugins/UnLua/Source/ThirdParty/Lua/Lua.Build.cs @@ -442,8 +442,11 @@ private string GetBuildSystem() return "Ninja"; if (Target.Platform.IsInGroup(UnrealPlatformGroup.Windows)) { +#if !UE_5_4_OR_LATER if (Target.WindowsPlatform.Compiler == WindowsCompiler.VisualStudio2019) return "Visual Studio 16 2019"; +#endif + #if UE_4_27_OR_LATER if (Target.WindowsPlatform.Compiler == WindowsCompiler.VisualStudio2022) return "Visual Studio 17 2022"; diff --git a/Plugins/UnLua/Source/UnLua/Public/UnLuaEx.inl b/Plugins/UnLua/Source/UnLua/Public/UnLuaEx.inl index 1dc4e269..a4792591 100644 --- a/Plugins/UnLua/Source/UnLua/Public/UnLuaEx.inl +++ b/Plugins/UnLua/Source/UnLua/Public/UnLuaEx.inl @@ -94,7 +94,7 @@ namespace UnLua { static void Generate(FString &Buffer, int32 Index) { - FString TypeName = TTypeIntelliSense::Value, typename TDecay::Type>::Type*, typename TDecay::Type>::Result>::GetName(); + FString TypeName = TTypeIntelliSense::Value, typename TDecay::Type>::Type*, typename TDecay::Type>::type>::GetName(); Buffer += FString::Printf(TEXT("---@param P%d %s %s\r\n"), Index, *TypeName, *TArgumentComment::Get()); TArgumentIntelliSense::Generate(Buffer, Index + 1); } @@ -123,7 +123,7 @@ namespace UnLua } // return - FString ReturnTypeName = TTypeIntelliSense::Value, typename TDecay::Type>::Type*, typename TDecay::Type>::Result>::GetName(); + FString ReturnTypeName = TTypeIntelliSense::Value, typename TDecay::Type>::Type*, typename TDecay::Type>::type>::GetName(); if (ReturnTypeName.Len() > 0) { Buffer += FString::Printf(TEXT("---@return %s\r\n"), *ReturnTypeName); @@ -880,7 +880,7 @@ namespace UnLua template void TExportedClassBase::GenerateIntelliSense(FString &Buffer) const { - GenerateIntelliSenseInternal(Buffer, typename TChooseClass::Result()); + GenerateIntelliSenseInternal(Buffer, typename std::conditional::type()); } template @@ -951,7 +951,7 @@ namespace UnLua TExportedClass::TExportedClass(const char *InName, const char *InSuperClassName) : FExportedClassBase(InName, InSuperClassName) { - AddDefaultFunctions(typename TChooseClass::Result()); + AddDefaultFunctions(std::conditional::type()); } template @@ -1029,14 +1029,14 @@ namespace UnLua template void TExportedClass::AddDefaultFunctions(FFalse NotReflected) { - AddConstructor(typename TChooseClass::Value, FTrue, FFalse>::Result()); - AddDestructor(typename TChooseClass, TNot>>::Value, FFalse, FTrue>::Result()); + AddConstructor(typename std::conditional::Value, FTrue, FFalse>::type()); + AddDestructor(typename std::conditional, TNot>>::Value, FFalse, FTrue>::type()); } template void TExportedClass::AddDefaultFunctions(FTrue Reflected) { - AddDefaultFunctions_Reflected(typename TChooseClass::Value, FTrue, FFalse>::Result()); + AddDefaultFunctions_Reflected(typename std::conditional::Value, FTrue, FFalse>::type()); } template @@ -1045,7 +1045,7 @@ namespace UnLua int32 NumArgs = sizeof...(CtorArgType); if (NumArgs > 0) { - AddConstructor(typename TChooseClass::Value, FTrue, FFalse>::Result()); + AddConstructor(typename std::conditional::Value, FTrue, FFalse>::type()); } } diff --git a/Plugins/UnLua/Source/UnLua/Public/UnLuaLegacy.h b/Plugins/UnLua/Source/UnLua/Public/UnLuaLegacy.h index 418b7095..8c04dbc6 100644 --- a/Plugins/UnLua/Source/UnLua/Public/UnLuaLegacy.h +++ b/Plugins/UnLua/Source/UnLua/Public/UnLuaLegacy.h @@ -853,18 +853,18 @@ namespace UnLua virtual void Destruct(void* Dest) const override { static_assert(TIsDestructible::Value, "type must be destructible!"); - DestructInternal((T*)Dest, typename TChooseClass::Value, FTrue, FFalse>::Result()); + DestructInternal((T*)Dest, typename std::conditional::Value, FTrue, FFalse>::type()); } virtual void Copy(void* Dest, const void* Src) const override { static_assert(TIsCopyConstructible::Value, "type must be copy constructible!"); - CopyInternal((T*)Dest, (const T*)Src, typename TChooseClass::Value, FTrue, FFalse>::Result()); + CopyInternal((T*)Dest, (const T*)Src, typename std::conditional::Value, FTrue, FFalse>::type()); } virtual bool Identical(const void* A, const void* B) const override { - return IdenticalInternal((const T*)A, (const T*)B, typename TChooseClass::Value, FTrue, FFalse>::Result()); + return IdenticalInternal((const T*)A, (const T*)B, typename std::conditional::Value, FTrue, FFalse>::type()); } virtual FString GetName() const override { return FString(TType::Type>::GetName()); } @@ -890,7 +890,7 @@ namespace UnLua { static_assert(TIsCopyConstructible::Value, "type must be copy constructible!"); T V = UnLua::Get(L, IndexInStack, TType()); - CopyInternal((T*)ValuePtr, &V, typename TChooseClass::Value, FTrue, FFalse>::Result()); + CopyInternal((T*)ValuePtr, &V, typename std::conditional::Value, FTrue, FFalse>::type()); return false; } diff --git a/Plugins/UnLua/Source/UnLua/Public/UnLuaTemplate.h b/Plugins/UnLua/Source/UnLua/Public/UnLuaTemplate.h index 38b51ec9..02df44a4 100644 --- a/Plugins/UnLua/Source/UnLua/Public/UnLuaTemplate.h +++ b/Plugins/UnLua/Source/UnLua/Public/UnLuaTemplate.h @@ -91,7 +91,7 @@ namespace UnLua template struct TArgTypeTraits { typedef typename TDecay::Type RT; - typedef typename TChooseClass::Value, RT, typename std::remove_cv::type>::Result Type; + typedef typename std::conditional::Value, RT, typename std::remove_cv::type>::type Type; }; diff --git a/Source/TPSProject.Target.cs b/Source/TPSProject.Target.cs index b0a841f0..ab982ca8 100644 --- a/Source/TPSProject.Target.cs +++ b/Source/TPSProject.Target.cs @@ -16,7 +16,16 @@ using System.Collections.Generic; public class TPSProjectTarget : TargetRules { public TPSProjectTarget(TargetInfo Target) : base(Target) { Type = TargetType.Game; - DefaultBuildSettings = BuildSettingsVersion.V2; + DefaultBuildSettings = BuildSettingsVersion.V2; + +#if UE_5_4_OR_LATER + DefaultBuildSettings = BuildSettingsVersion.V4; + IncludeOrderVersion = EngineIncludeOrderVersion.Latest; +#endif + ExtraModuleNames.AddRange( new string[] { + + + "TPSProject" } ); } } \ No newline at end of file diff --git a/Source/TPSProjectEditor.Target.cs b/Source/TPSProjectEditor.Target.cs index 724897f5..10e33696 100644 --- a/Source/TPSProjectEditor.Target.cs +++ b/Source/TPSProjectEditor.Target.cs @@ -15,9 +15,23 @@ using UnrealBuildTool; using System.Collections.Generic; -public class TPSProjectEditorTarget : TargetRules { public TPSProjectEditorTarget(TargetInfo Target) : base(Target) { Type = TargetType.Editor; +public class TPSProjectEditorTarget : TargetRules +{ + public TPSProjectEditorTarget(TargetInfo Target) : base(Target) + { + Type = TargetType.Editor; DefaultBuildSettings = BuildSettingsVersion.V2; - ExtraModuleNames.AddRange( new string[] { + +#if UE_5_4_OR_LATER + DefaultBuildSettings = BuildSettingsVersion.V4; + IncludeOrderVersion = EngineIncludeOrderVersion.Latest; +#endif + + ExtraModuleNames.AddRange( + new string[] + { "TPSProject" - } ); - } } \ No newline at end of file + } + ); + } +} diff --git a/Source/TPSProjectServer.Target.cs b/Source/TPSProjectServer.Target.cs index 3638c7c3..bc30546c 100644 --- a/Source/TPSProjectServer.Target.cs +++ b/Source/TPSProjectServer.Target.cs @@ -20,6 +20,12 @@ public TPSProjectServerTarget(TargetInfo Target) : base(Target) { Type = TargetType.Server; DefaultBuildSettings = BuildSettingsVersion.V2; + +#if UE_5_4_OR_LATER + DefaultBuildSettings = BuildSettingsVersion.V4; + IncludeOrderVersion = EngineIncludeOrderVersion.Latest; +#endif + ExtraModuleNames.Add("TPSProject"); } } \ No newline at end of file From bff6a4c2db01f539466dd64599fd34242391f1cb Mon Sep 17 00:00:00 2001 From: rpg3d Date: Mon, 1 Apr 2024 22:20:52 +0800 Subject: [PATCH 2/2] 1.fix compile error on Android --- Plugins/UnLua/Source/UnLua/Private/Registries/EnumRegistry.cpp | 2 +- Plugins/UnLua/Source/UnLua/Public/UnLuaEx.inl | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Plugins/UnLua/Source/UnLua/Private/Registries/EnumRegistry.cpp b/Plugins/UnLua/Source/UnLua/Private/Registries/EnumRegistry.cpp index 54bd5e0f..9e890ed1 100644 --- a/Plugins/UnLua/Source/UnLua/Private/Registries/EnumRegistry.cpp +++ b/Plugins/UnLua/Source/UnLua/Private/Registries/EnumRegistry.cpp @@ -28,7 +28,7 @@ namespace UnLua FEnumRegistry::~FEnumRegistry() { - for (const auto Pair : Name2Enums) + for (const auto& Pair : Name2Enums) delete Pair.Value; } diff --git a/Plugins/UnLua/Source/UnLua/Public/UnLuaEx.inl b/Plugins/UnLua/Source/UnLua/Public/UnLuaEx.inl index a4792591..bfe292bc 100644 --- a/Plugins/UnLua/Source/UnLua/Public/UnLuaEx.inl +++ b/Plugins/UnLua/Source/UnLua/Public/UnLuaEx.inl @@ -13,6 +13,7 @@ // See the License for the specific language governing permissions and limitations under the License. #include "UnLuaDebugBase.h" +#include "type_traits" namespace UnLua { @@ -951,7 +952,7 @@ namespace UnLua TExportedClass::TExportedClass(const char *InName, const char *InSuperClassName) : FExportedClassBase(InName, InSuperClassName) { - AddDefaultFunctions(std::conditional::type()); + AddDefaultFunctions(typename std::conditional::type()); } template