diff --git a/Source/Engine/Core/Math/CollisionsHelper.h b/Source/Engine/Core/Math/CollisionsHelper.h index 4bebf2492..692b86dbe 100644 --- a/Source/Engine/Core/Math/CollisionsHelper.h +++ b/Source/Engine/Core/Math/CollisionsHelper.h @@ -2,8 +2,6 @@ #pragma once -#include "Engine/Core/Compiler.h" - struct Vector2; struct Vector3; struct Vector4; diff --git a/Source/Engine/Navigation/NavMeshBuilder.h b/Source/Engine/Navigation/NavMeshBuilder.h index 27dab4273..350302a2a 100644 --- a/Source/Engine/Navigation/NavMeshBuilder.h +++ b/Source/Engine/Navigation/NavMeshBuilder.h @@ -4,8 +4,6 @@ #if COMPILE_WITH_NAV_MESH_BUILDER -#include "Engine/Core/Compiler.h" - class Scene; /// diff --git a/Source/Engine/Particles/ParticleManager.h b/Source/Engine/Particles/ParticleManager.h index bd9fa1716..4308b2ab8 100644 --- a/Source/Engine/Particles/ParticleManager.h +++ b/Source/Engine/Particles/ParticleManager.h @@ -2,8 +2,6 @@ #pragma once -#include "Engine/Core/Compiler.h" - struct RenderContext; struct RenderView; class ParticleEmitter; diff --git a/Source/Engine/Scripting/StdTypesContainer.h b/Source/Engine/Scripting/StdTypesContainer.h index 3b4a13d19..8a62a78dc 100644 --- a/Source/Engine/Scripting/StdTypesContainer.h +++ b/Source/Engine/Scripting/StdTypesContainer.h @@ -3,7 +3,6 @@ #pragma once #include "Engine/Core/Singleton.h" -#include "Engine/Core/Compiler.h" class MClass; class MMethod; diff --git a/Source/FlaxEngine.Gen.h b/Source/FlaxEngine.Gen.h index 569d2f551..94eb7c467 100644 --- a/Source/FlaxEngine.Gen.h +++ b/Source/FlaxEngine.Gen.h @@ -2,8 +2,6 @@ #pragma once -#include "Engine/Core/Compiler.h" - #define FLAXENGINE_NAME "FlaxEngine" #define FLAXENGINE_VERSION Version(1, 0, 6216) #define FLAXENGINE_VERSION_TEXT "1.0.6216" diff --git a/Source/Tools/Flax.Build/Bindings/BindingsGenerator.Cpp.cs b/Source/Tools/Flax.Build/Bindings/BindingsGenerator.Cpp.cs index 175b03584..5bddd5d94 100644 --- a/Source/Tools/Flax.Build/Bindings/BindingsGenerator.Cpp.cs +++ b/Source/Tools/Flax.Build/Bindings/BindingsGenerator.Cpp.cs @@ -2005,8 +2005,6 @@ namespace Flax.Build.Bindings contents.AppendLine(); contents.AppendLine("#pragma once"); contents.AppendLine(); - contents.AppendLine("#include \"Engine/Core/Compiler.h\""); - contents.AppendLine(); contents.AppendLine($"#define {binaryModuleNameUpper}_NAME \"{binaryModuleName}\""); if (version.Build == -1) contents.AppendLine($"#define {binaryModuleNameUpper}_VERSION Version({version.Major}, {version.Minor})"); diff --git a/Source/Tools/Flax.Build/Build/EngineTarget.cs b/Source/Tools/Flax.Build/Build/EngineTarget.cs index f310a4814..575d0cdc5 100644 --- a/Source/Tools/Flax.Build/Build/EngineTarget.cs +++ b/Source/Tools/Flax.Build/Build/EngineTarget.cs @@ -141,7 +141,7 @@ namespace Flax.Build mainModuleOptions.SourcePaths.Add(mainModule.FolderPath); mainModule.Setup(mainModuleOptions); mainModuleOptions.MergeSourcePathsIntoSourceFiles(); - mainModuleOptions.CompileEnv.PreprocessorDefinitions.Add("FLAXENGINE_API=DLLIMPORT"); + mainModuleOptions.CompileEnv.PreprocessorDefinitions.Add("FLAXENGINE_API=" + buildOptions.Toolchain.DllImport); Builder.BuildModuleInner(buildData, mainModule, mainModuleOptions, false); // Link executable diff --git a/Source/Tools/Flax.Build/Build/NativeCpp/Builder.NativeCpp.cs b/Source/Tools/Flax.Build/Build/NativeCpp/Builder.NativeCpp.cs index e52a6055c..5b748a481 100644 --- a/Source/Tools/Flax.Build/Build/NativeCpp/Builder.NativeCpp.cs +++ b/Source/Tools/Flax.Build/Build/NativeCpp/Builder.NativeCpp.cs @@ -695,14 +695,14 @@ namespace Flax.Build if (buildData.Target.LinkType == TargetLinkType.Modular) { // Export symbols from binary module - moduleOptions.CompileEnv.PreprocessorDefinitions.Add(binaryModuleNameUpper + (target.UseSymbolsExports ? "_API=DLLEXPORT" : "_API=")); + moduleOptions.CompileEnv.PreprocessorDefinitions.Add(binaryModuleNameUpper + (target.UseSymbolsExports ? "_API=" + toolchain.DllExport : "_API=")); } else { // Export symbols from all binary modules in the build foreach (var q in buildData.BinaryModules) { - moduleOptions.CompileEnv.PreprocessorDefinitions.Add(q.Key.ToUpperInvariant() + (target.UseSymbolsExports ? "_API=DLLEXPORT" : "_API=")); + moduleOptions.CompileEnv.PreprocessorDefinitions.Add(q.Key.ToUpperInvariant() + (target.UseSymbolsExports ? "_API=" + toolchain.DllExport : "_API=")); } } @@ -715,7 +715,7 @@ namespace Flax.Build if (buildData.Target.LinkType == TargetLinkType.Modular) { // Import symbols from referenced binary module - moduleOptions.CompileEnv.PreprocessorDefinitions.Add(q.Name.ToUpperInvariant() + "_API=DLLIMPORT"); + moduleOptions.CompileEnv.PreprocessorDefinitions.Add(q.Name.ToUpperInvariant() + "_API=" + toolchain.DllImport); // Link against the referenced binary module if (toolchain.UseImportLibraryWhenLinking) @@ -726,7 +726,7 @@ namespace Flax.Build else if (target.UseSymbolsExports) { // Export symbols from referenced binary module to be visible further - moduleOptions.CompileEnv.PreprocessorDefinitions.Add(q.Name.ToUpperInvariant() + "_API=DLLEXPORT"); + moduleOptions.CompileEnv.PreprocessorDefinitions.Add(q.Name.ToUpperInvariant() + "_API=" + toolchain.DllExport); } else { diff --git a/Source/Tools/Flax.Build/Build/Toolchain.cs b/Source/Tools/Flax.Build/Build/Toolchain.cs index 252e3f071..262d821c7 100644 --- a/Source/Tools/Flax.Build/Build/Toolchain.cs +++ b/Source/Tools/Flax.Build/Build/Toolchain.cs @@ -41,6 +41,16 @@ namespace Flax.Build /// public virtual bool GeneratesImportLibraryWhenLinking => false; + /// + /// Gets the compiler attribute for symbols exported to shared library (dll file). + /// + public abstract string DllExport { get; } + + /// + /// Gets the compiler attribute for symbols imported from shared library (dll file). + /// + public abstract string DllImport { get; } + /// /// Initializes a new instance of the class. /// diff --git a/Source/Tools/Flax.Build/Platforms/Unix/UnixToolchain.cs b/Source/Tools/Flax.Build/Platforms/Unix/UnixToolchain.cs index e66af3ece..f4598db2c 100644 --- a/Source/Tools/Flax.Build/Platforms/Unix/UnixToolchain.cs +++ b/Source/Tools/Flax.Build/Platforms/Unix/UnixToolchain.cs @@ -195,6 +195,12 @@ namespace Flax.Build.Platforms } } + /// + public override string DllExport => "__attribute__ ((__visibility__ (\"default\")))"; + + /// + public override string DllImport => ""; + /// public override void LogInfo() { diff --git a/Source/Tools/Flax.Build/Platforms/Windows/WindowsToolchainBase.cs b/Source/Tools/Flax.Build/Platforms/Windows/WindowsToolchainBase.cs index 919971f68..38446ee17 100644 --- a/Source/Tools/Flax.Build/Platforms/Windows/WindowsToolchainBase.cs +++ b/Source/Tools/Flax.Build/Platforms/Windows/WindowsToolchainBase.cs @@ -330,6 +330,12 @@ namespace Flax.Build.Platforms /// public override bool GeneratesImportLibraryWhenLinking => true; + /// + public override string DllExport => "__declspec(dllexport)"; + + /// + public override string DllImport => "__declspec(dllimport)"; + /// public override void LogInfo() {