// Copyright (c) 2012-2023 Wojciech Figat. All rights reserved. using System; using System.Collections.Generic; using Flax.Build.NativeCpp; namespace Flax.Build { /// /// The base class for game modules. /// /// public abstract class GameModule : Module { /// public override void Setup(BuildOptions options) { base.Setup(options); // Reference main engine modules options.PublicDependencies.Add("Core"); options.PublicDependencies.Add("Engine"); options.PublicDependencies.Add("Level"); options.PublicDependencies.Add("Scripting"); // Setup scripting API environment var engineVersion = EngineTarget.EngineVersion; AddEngineVersionDefines(engineVersion, options.ScriptingAPI.Defines); AddEngineVersionDefines(engineVersion, options.CompileEnv.PreprocessorDefinitions); options.ScriptingAPI.Defines.Add("FLAX"); options.ScriptingAPI.Defines.Add("FLAX_ASSERTIONS"); if (options.Target.IsEditor) { options.ScriptingAPI.Defines.Add("FLAX_EDITOR"); } else { options.ScriptingAPI.Defines.Add("FLAX_GAME"); } } private void AddEngineVersionDefines(Version engineVersion, HashSet defines) { defines.Add(string.Format("FLAX_{0}", engineVersion.Major)); defines.Add(string.Format("FLAX_{0}_{1}", engineVersion.Major, engineVersion.Minor)); for (int minor = 1; minor <= engineVersion.Minor; minor++) defines.Add(string.Format("FLAX_{0}_{1}_OR_NEWER", engineVersion.Major, minor)); } } /// /// The base class for game editor modules. /// /// /// public abstract class GameEditorModule : GameModule { /// public override void Setup(BuildOptions options) { base.Setup(options); // Reference main editor modules options.PublicDependencies.Add("Editor"); } } }