add SetupMetaXRAvailability during the build time to define WITH_METAXR
This commit is contained in:
@@ -33,7 +33,9 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
using EpicGames.Core;
|
||||||
using System;
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using UnrealBuildTool;
|
using UnrealBuildTool;
|
||||||
|
|
||||||
@@ -104,5 +106,87 @@ public class SenseGloveTracking : ModuleRules
|
|||||||
);
|
);
|
||||||
|
|
||||||
AddEngineThirdPartyPrivateStaticDependencies(Target, "OpenXR");
|
AddEngineThirdPartyPrivateStaticDependencies(Target, "OpenXR");
|
||||||
|
|
||||||
|
SetupMetaXRAvailability(Target);
|
||||||
|
}
|
||||||
|
|
||||||
|
private string FindPluginPath(string PluginName)
|
||||||
|
{
|
||||||
|
string[] PossiblePluginDirs = new string[]
|
||||||
|
{
|
||||||
|
Path.Combine(EngineDirectory, "Plugins"),
|
||||||
|
Path.Combine(EngineDirectory, "Plugins", "Marketplace"),
|
||||||
|
Path.Combine(ModuleDirectory, "..", "..", "..", "..", "Plugins"),
|
||||||
|
};
|
||||||
|
|
||||||
|
foreach (string BaseDir in PossiblePluginDirs)
|
||||||
|
{
|
||||||
|
string PluginDir = Path.Combine(BaseDir, PluginName);
|
||||||
|
if (Directory.Exists(PluginDir))
|
||||||
|
{
|
||||||
|
return PluginDir;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return string.Empty;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SetupMetaXRAvailability(ReadOnlyTargetRules Target)
|
||||||
|
{
|
||||||
|
const string MetaXRFriendlyName = "MetaXR";
|
||||||
|
const string MetaXRPluginName = "OculusXR";
|
||||||
|
|
||||||
|
PublicDefinitions.Add("WITH_METAXR=0");
|
||||||
|
|
||||||
|
if (JsonObject.TryRead(Target.ProjectFile, out var UProjectRawObject))
|
||||||
|
{
|
||||||
|
if (UProjectRawObject.TryGetObjectArrayField("Plugins", out var PluginsObject))
|
||||||
|
{
|
||||||
|
foreach (JsonObject PluginObject in PluginsObject)
|
||||||
|
{
|
||||||
|
PluginObject.TryGetStringField("Name", out var PluginName);
|
||||||
|
PluginObject.TryGetBoolField("Enabled", out var PluginEnabled);
|
||||||
|
|
||||||
|
if (PluginName == MetaXRPluginName && PluginEnabled)
|
||||||
|
{
|
||||||
|
string MetaXRDir = Path.GetFullPath(FindPluginPath(MetaXRFriendlyName));
|
||||||
|
if (MetaXRDir == string.Empty)
|
||||||
|
{
|
||||||
|
Debug.Assert(false, "Cannot find the MetaXRDir!");
|
||||||
|
}
|
||||||
|
|
||||||
|
string MetaXRSourceDir = Path.Combine(MetaXRDir, "Source");
|
||||||
|
string OculusXRHMDDir = Path.Combine(MetaXRSourceDir, "OculusXRInput");
|
||||||
|
string OculusXRHMDPrivateIncludeDir = Path.Combine(OculusXRHMDDir, "Private");
|
||||||
|
string OculusXRInputDir = Path.Combine(MetaXRSourceDir, "OculusXRHMD");
|
||||||
|
string OculusXRInputPrivateIncludeDir = Path.Combine(OculusXRInputDir, "Private");
|
||||||
|
|
||||||
|
string MetaXRThirdPartyDir = Path.Combine(MetaXRSourceDir, "ThirdParty");
|
||||||
|
string OVRPluginIncludeDir =
|
||||||
|
Path.Combine(MetaXRThirdPartyDir, "OVRPlugin", "OVRPlugin", "Include");
|
||||||
|
|
||||||
|
PrivateIncludePaths.AddRange(
|
||||||
|
new string[]
|
||||||
|
{
|
||||||
|
OculusXRHMDPrivateIncludeDir,
|
||||||
|
OculusXRInputPrivateIncludeDir,
|
||||||
|
OVRPluginIncludeDir,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
PrivateIncludePathModuleNames.AddRange(
|
||||||
|
new string[]
|
||||||
|
{
|
||||||
|
"OculusXRHMD",
|
||||||
|
"OculusXRInput",
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
PublicDefinitions.Remove("WITH_METAXR=0");
|
||||||
|
PublicDefinitions.Add("WITH_METAXR=1");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user