From 9b991bcfdf2a6f5cea16ac5779c7c3a0cf55c22f Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Fri, 31 Dec 2021 17:12:55 +0100 Subject: [PATCH] Add Editor for Mac impl progress --- Source/Editor/Analytics/EditorAnalytics.cpp | 2 ++ Source/Editor/Cooker/GameCooker.cpp | 1 + Source/Editor/Scripting/ScriptsBuilder.cpp | 2 ++ Source/Editor/Windows/GameCookerWindow.cs | 10 ++++++++++ Source/Engine/Engine/Engine.cpp | 2 ++ .../Engine/Graphics/Shaders/Cache/ShaderAssetBase.cpp | 2 ++ .../ShadersCompilation/ShadersCompilation.Build.cs | 2 ++ Source/Engine/Tools/ModelTool/ModelTool.Build.cs | 1 + Source/FlaxEditor.Build.cs | 4 ++++ Source/ThirdParty/assimp/assimp.Build.cs | 1 + Source/ThirdParty/curl/curl.Build.cs | 1 + Source/Tools/Flax.Build/Build/GameTarget.cs | 1 + 12 files changed, 29 insertions(+) diff --git a/Source/Editor/Analytics/EditorAnalytics.cpp b/Source/Editor/Analytics/EditorAnalytics.cpp index c2a293c15..0e29a3363 100644 --- a/Source/Editor/Analytics/EditorAnalytics.cpp +++ b/Source/Editor/Analytics/EditorAnalytics.cpp @@ -107,6 +107,8 @@ void EditorAnalytics::StartSession() { UA_USER_AGENT, 0, "Windows " FLAXENGINE_VERSION_TEXT }, #elif PLATFORM_LINUX { UA_USER_AGENT, 0, "Linux " FLAXENGINE_VERSION_TEXT }, +#elif PLATFORM_MAC + { UA_USER_AGENT, 0, "Mac " FLAXENGINE_VERSION_TEXT }, #else #error "Unknown platform" #endif diff --git a/Source/Editor/Cooker/GameCooker.cpp b/Source/Editor/Cooker/GameCooker.cpp index 38f94abd2..d70fc523f 100644 --- a/Source/Editor/Cooker/GameCooker.cpp +++ b/Source/Editor/Cooker/GameCooker.cpp @@ -1,6 +1,7 @@ // Copyright (c) 2012-2021 Wojciech Figat. All rights reserved. #include "GameCooker.h" +#include "PlatformTools.h" #include "FlaxEngine.Gen.h" #include "Engine/Scripting/MainThreadManagedInvokeAction.h" #include "Engine/Scripting/ManagedCLR/MTypes.h" diff --git a/Source/Editor/Scripting/ScriptsBuilder.cpp b/Source/Editor/Scripting/ScriptsBuilder.cpp index c8e9d4cef..5becec64c 100644 --- a/Source/Editor/Scripting/ScriptsBuilder.cpp +++ b/Source/Editor/Scripting/ScriptsBuilder.cpp @@ -364,6 +364,8 @@ void ScriptsBuilder::GetBinariesConfiguration(const Char*& target, const Char*& platform = TEXT("Windows"); #elif PLATFORM_LINUX platform = TEXT("Linux"); +#elif PLATFORM_MAC + platform = TEXT("Mac"); #else #error "Unknown platform" #endif diff --git a/Source/Editor/Windows/GameCookerWindow.cs b/Source/Editor/Windows/GameCookerWindow.cs index 61bd753af..2ed9e6572 100644 --- a/Source/Editor/Windows/GameCookerWindow.cs +++ b/Source/Editor/Windows/GameCookerWindow.cs @@ -123,6 +123,16 @@ namespace FlaxEditor.Windows IsSupported = false; break; } +#elif PLATFORM_MAC + switch (BuildPlatform) + { + case BuildPlatform.MacOSx64: + IsSupported = true; + break; + default: + IsSupported = false; + break; + } #else #error "Unknown platform." #endif diff --git a/Source/Engine/Engine/Engine.cpp b/Source/Engine/Engine/Engine.cpp index 7b991bf8e..08465b349 100644 --- a/Source/Engine/Engine/Engine.cpp +++ b/Source/Engine/Engine/Engine.cpp @@ -531,6 +531,8 @@ void EngineImpl::InitPaths() Globals::MonoPath = Globals::StartupFolder / TEXT("Source/Platforms/Editor/Windows/Mono"); #elif PLATFORM_LINUX Globals::MonoPath = Globals::StartupFolder / TEXT("Source/Platforms/Editor/Linux/Mono"); +#elif PLATFORM_MAC + Globals::MonoPath = Globals::StartupFolder / TEXT("Source/Platforms/Editor/Mac/Mono"); #else #error "Please specify the Mono data location for Editor on this platform." #endif diff --git a/Source/Engine/Graphics/Shaders/Cache/ShaderAssetBase.cpp b/Source/Engine/Graphics/Shaders/Cache/ShaderAssetBase.cpp index e0baaa9cb..35a720d88 100644 --- a/Source/Engine/Graphics/Shaders/Cache/ShaderAssetBase.cpp +++ b/Source/Engine/Graphics/Shaders/Cache/ShaderAssetBase.cpp @@ -270,6 +270,8 @@ bool ShaderAssetBase::LoadShaderCache(ShaderCacheResult& result) platformDefine.Name = "PLATFORM_WINDOWS"; #elif PLATFORM_LINUX platformDefine.Name = "PLATFORM_LINUX"; +#elif PLATFORM_MAC + platformDefine.Name = "PLATFORM_MAC"; #else #error "Unknown platform." #endif diff --git a/Source/Engine/ShadersCompilation/ShadersCompilation.Build.cs b/Source/Engine/ShadersCompilation/ShadersCompilation.Build.cs index 82b0fab7b..c6afa0512 100644 --- a/Source/Engine/ShadersCompilation/ShadersCompilation.Build.cs +++ b/Source/Engine/ShadersCompilation/ShadersCompilation.Build.cs @@ -53,6 +53,8 @@ public class ShadersCompilation : EngineModule case TargetPlatform.Linux: options.PrivateDependencies.Add("ShaderCompilerVulkan"); break; + case TargetPlatform.Mac: + break; default: throw new InvalidPlatformException(options.Platform.Target); } diff --git a/Source/Engine/Tools/ModelTool/ModelTool.Build.cs b/Source/Engine/Tools/ModelTool/ModelTool.Build.cs index 2ec8384ef..66a678eb4 100644 --- a/Source/Engine/Tools/ModelTool/ModelTool.Build.cs +++ b/Source/Engine/Tools/ModelTool/ModelTool.Build.cs @@ -56,6 +56,7 @@ public class ModelTool : EngineModule options.PrivateDependencies.Add("UVAtlas"); break; case TargetPlatform.Linux: + case TargetPlatform.Mac: break; default: throw new InvalidPlatformException(options.Platform.Target); } diff --git a/Source/FlaxEditor.Build.cs b/Source/FlaxEditor.Build.cs index 339f91fae..960f2be66 100644 --- a/Source/FlaxEditor.Build.cs +++ b/Source/FlaxEditor.Build.cs @@ -23,6 +23,7 @@ public class FlaxEditor : EngineTarget { TargetPlatform.Windows, TargetPlatform.Linux, + TargetPlatform.Mac, }; Architectures = new[] { @@ -63,6 +64,9 @@ public class FlaxEditor : EngineTarget options.OutputFolder = Path.Combine(options.WorkingDirectory, "Binaries", "Editor", "Linux", options.Configuration.ToString()); options.DependencyFiles.Add(Path.Combine(Globals.EngineRoot, "Source", "Logo.png")); break; + case TargetPlatform.Mac: + options.OutputFolder = Path.Combine(options.WorkingDirectory, "Binaries", "Editor", "Mac", options.Configuration.ToString()); + break; default: throw new InvalidPlatformException(options.Platform.Target, "Not supported Editor platform."); } } diff --git a/Source/ThirdParty/assimp/assimp.Build.cs b/Source/ThirdParty/assimp/assimp.Build.cs index dd6da9d7c..2011b0b29 100644 --- a/Source/ThirdParty/assimp/assimp.Build.cs +++ b/Source/ThirdParty/assimp/assimp.Build.cs @@ -35,6 +35,7 @@ public class assimp : DepsModule options.DelayLoadLibraries.Add("assimp-vc140-md.dll"); break; case TargetPlatform.Linux: + case TargetPlatform.Mac: options.OutputFiles.Add(Path.Combine(depsRoot, "libassimp.a")); options.OutputFiles.Add(Path.Combine(depsRoot, "libIrrXML.a")); break; diff --git a/Source/ThirdParty/curl/curl.Build.cs b/Source/ThirdParty/curl/curl.Build.cs index ac77162a1..ce4c9d380 100644 --- a/Source/ThirdParty/curl/curl.Build.cs +++ b/Source/ThirdParty/curl/curl.Build.cs @@ -38,6 +38,7 @@ public class curl : DepsModule options.OutputFiles.Add("crypt32.lib"); break; case TargetPlatform.Linux: + case TargetPlatform.Mac: options.OutputFiles.Add(Path.Combine(depsRoot, "libcurl.a")); break; default: throw new InvalidPlatformException(options.Platform.Target); diff --git a/Source/Tools/Flax.Build/Build/GameTarget.cs b/Source/Tools/Flax.Build/Build/GameTarget.cs index 72aeaf2c6..b6a825a9d 100644 --- a/Source/Tools/Flax.Build/Build/GameTarget.cs +++ b/Source/Tools/Flax.Build/Build/GameTarget.cs @@ -42,6 +42,7 @@ namespace Flax.Build { TargetPlatform.Windows, TargetPlatform.Linux, + TargetPlatform.Mac, }; Architectures = new[] {