diff --git a/Source/Tools/Flax.Build/Deps/Dependencies/AGS.cs b/Source/Tools/Flax.Build/Deps/Dependencies/AGS.cs
index c756bb28b..ff16bd1c1 100644
--- a/Source/Tools/Flax.Build/Deps/Dependencies/AGS.cs
+++ b/Source/Tools/Flax.Build/Deps/Dependencies/AGS.cs
@@ -29,7 +29,6 @@ namespace Flax.Deps.Dependencies
return new[]
{
TargetArchitecture.x64,
- TargetArchitecture.ARM64,
};
default: return new TargetArchitecture[0];
}
diff --git a/Source/Tools/Flax.Build/Deps/Dependencies/DirectXShaderCompiler.cs b/Source/Tools/Flax.Build/Deps/Dependencies/DirectXShaderCompiler.cs
index 3c48290ee..f74494a30 100644
--- a/Source/Tools/Flax.Build/Deps/Dependencies/DirectXShaderCompiler.cs
+++ b/Source/Tools/Flax.Build/Deps/Dependencies/DirectXShaderCompiler.cs
@@ -1,6 +1,5 @@
// Copyright (c) Wojciech Figat. All rights reserved.
-using System;
using System.IO;
using System.Linq;
using Flax.Build;
diff --git a/Source/Tools/Flax.Build/Deps/Dependencies/DirectXTex.cs b/Source/Tools/Flax.Build/Deps/Dependencies/DirectXTex.cs
index 3a842b48c..cfbb88870 100644
--- a/Source/Tools/Flax.Build/Deps/Dependencies/DirectXTex.cs
+++ b/Source/Tools/Flax.Build/Deps/Dependencies/DirectXTex.cs
@@ -43,6 +43,12 @@ namespace Flax.Deps.Dependencies
TargetArchitecture.x64,
TargetArchitecture.ARM64,
};
+ case TargetPlatform.XboxOne:
+ case TargetPlatform.XboxScarlett:
+ return new[]
+ {
+ TargetArchitecture.x64,
+ };
default: return new TargetArchitecture[0];
}
}
diff --git a/Source/Tools/Flax.Build/Deps/Dependencies/EnvDTE.cs b/Source/Tools/Flax.Build/Deps/Dependencies/EnvDTE.cs
index 32d783e81..3f9a2148b 100644
--- a/Source/Tools/Flax.Build/Deps/Dependencies/EnvDTE.cs
+++ b/Source/Tools/Flax.Build/Deps/Dependencies/EnvDTE.cs
@@ -1,11 +1,8 @@
// Copyright (c) Wojciech Figat. All rights reserved.
-using System;
using System.IO;
using System.IO.Compression;
-using System.Linq;
using Flax.Build;
-using Flax.Build.Platforms;
namespace Flax.Deps.Dependencies
{
@@ -23,8 +20,8 @@ namespace Flax.Deps.Dependencies
switch (BuildPlatform)
{
case TargetPlatform.Windows:
- return new[]
- {
+ return new[]
+ {
TargetPlatform.Windows,
};
default: return new TargetPlatform[0];
@@ -40,8 +37,8 @@ namespace Flax.Deps.Dependencies
switch (BuildPlatform)
{
case TargetPlatform.Windows:
- return new[]
- {
+ return new[]
+ {
TargetArchitecture.x64,
TargetArchitecture.ARM64,
};
diff --git a/Source/Tools/Flax.Build/Deps/Dependencies/NvCloth.cs b/Source/Tools/Flax.Build/Deps/Dependencies/NvCloth.cs
index aa15aadac..f3c3ff210 100644
--- a/Source/Tools/Flax.Build/Deps/Dependencies/NvCloth.cs
+++ b/Source/Tools/Flax.Build/Deps/Dependencies/NvCloth.cs
@@ -17,70 +17,6 @@ namespace Flax.Deps.Dependencies
{
private string root, nvCloth;
- ///
- public override TargetPlatform[] Platforms
- {
- get
- {
- switch (BuildPlatform)
- {
- case TargetPlatform.Windows:
- return new[]
- {
- TargetPlatform.Windows,
- TargetPlatform.XboxOne,
- TargetPlatform.XboxScarlett,
- TargetPlatform.PS4,
- TargetPlatform.PS5,
- TargetPlatform.Switch,
- TargetPlatform.Android,
- };
- case TargetPlatform.Linux:
- return new[]
- {
- TargetPlatform.Linux,
- };
- case TargetPlatform.Mac:
- return new[]
- {
- TargetPlatform.Mac,
- TargetPlatform.iOS,
- };
- default: return new TargetPlatform[0];
- }
- }
- }
-
- ///
- public override TargetArchitecture[] Architectures
- {
- get
- {
- switch (BuildPlatform)
- {
- case TargetPlatform.Windows:
- return new[]
- {
- TargetArchitecture.x64,
- TargetArchitecture.ARM64,
- };
- case TargetPlatform.Linux:
- return new[]
- {
- TargetArchitecture.x64,
- //TargetArchitecture.ARM64,
- };
- case TargetPlatform.Mac:
- return new[]
- {
- TargetArchitecture.x64,
- TargetArchitecture.ARM64,
- };
- default: return new TargetArchitecture[0];
- }
- }
- }
-
///
public override void Build(BuildOptions options)
{
diff --git a/Source/Tools/Flax.Build/Deps/Dependencies/OpenAL.cs b/Source/Tools/Flax.Build/Deps/Dependencies/OpenAL.cs
index 5e194edd4..37e446ce1 100644
--- a/Source/Tools/Flax.Build/Deps/Dependencies/OpenAL.cs
+++ b/Source/Tools/Flax.Build/Deps/Dependencies/OpenAL.cs
@@ -70,6 +70,16 @@ namespace Flax.Deps.Dependencies
TargetArchitecture.x64,
TargetArchitecture.ARM64,
};
+ case TargetPlatform.iOS:
+ return new[]
+ {
+ TargetArchitecture.ARM64,
+ };
+ case TargetPlatform.Android:
+ return new[]
+ {
+ TargetArchitecture.ARM64,
+ };
default: return new TargetArchitecture[0];
}
}
diff --git a/Source/Tools/Flax.Build/Deps/Dependencies/PhysX.cs b/Source/Tools/Flax.Build/Deps/Dependencies/PhysX.cs
index 46ad23381..18bb4e69f 100644
--- a/Source/Tools/Flax.Build/Deps/Dependencies/PhysX.cs
+++ b/Source/Tools/Flax.Build/Deps/Dependencies/PhysX.cs
@@ -17,70 +17,6 @@ namespace Flax.Deps.Dependencies
///
class PhysX : Dependency
{
- ///
- public override TargetPlatform[] Platforms
- {
- get
- {
- switch (BuildPlatform)
- {
- case TargetPlatform.Windows:
- return new[]
- {
- TargetPlatform.Windows,
- TargetPlatform.XboxOne,
- TargetPlatform.PS4,
- TargetPlatform.PS5,
- TargetPlatform.XboxScarlett,
- TargetPlatform.Android,
- TargetPlatform.Switch,
- };
- case TargetPlatform.Linux:
- return new[]
- {
- TargetPlatform.Linux,
- };
- case TargetPlatform.Mac:
- return new[]
- {
- TargetPlatform.Mac,
- TargetPlatform.iOS,
- };
- default: return new TargetPlatform[0];
- }
- }
- }
-
- ///
- public override TargetArchitecture[] Architectures
- {
- get
- {
- switch (BuildPlatform)
- {
- case TargetPlatform.Windows:
- return new[]
- {
- TargetArchitecture.x64,
- TargetArchitecture.ARM64,
- };
- case TargetPlatform.Linux:
- return new[]
- {
- TargetArchitecture.x64,
- //TargetArchitecture.ARM64,
- };
- case TargetPlatform.Mac:
- return new[]
- {
- TargetArchitecture.x64,
- TargetArchitecture.ARM64,
- };
- default: return new TargetArchitecture[0];
- }
- }
- }
-
private string root;
private string projectGenDir;
private string projectGenPath;
diff --git a/Source/Tools/Flax.Build/Deps/Dependencies/UVAtlas.cs b/Source/Tools/Flax.Build/Deps/Dependencies/UVAtlas.cs
index f0d29dba9..19e314326 100644
--- a/Source/Tools/Flax.Build/Deps/Dependencies/UVAtlas.cs
+++ b/Source/Tools/Flax.Build/Deps/Dependencies/UVAtlas.cs
@@ -42,18 +42,6 @@ namespace Flax.Deps.Dependencies
TargetArchitecture.x64,
TargetArchitecture.ARM64,
};
- case TargetPlatform.Linux:
- return new[]
- {
- TargetArchitecture.x64,
- //TargetArchitecture.ARM64,
- };
- case TargetPlatform.Mac:
- return new[]
- {
- TargetArchitecture.x64,
- TargetArchitecture.ARM64,
- };
default: return new TargetArchitecture[0];
}
}
diff --git a/Source/Tools/Flax.Build/Deps/Dependencies/astc.cs b/Source/Tools/Flax.Build/Deps/Dependencies/astc.cs
index 40ae9d1e0..62a2b1097 100644
--- a/Source/Tools/Flax.Build/Deps/Dependencies/astc.cs
+++ b/Source/Tools/Flax.Build/Deps/Dependencies/astc.cs
@@ -1,6 +1,5 @@
// Copyright (c) Wojciech Figat. All rights reserved.
-using System.Collections.Generic;
using System.IO;
using Flax.Build;
@@ -76,7 +75,7 @@ namespace Flax.Deps.Dependencies
{
case TargetPlatform.Windows:
{
- string buildDir = Path.Combine(root, "build-" + architecture.ToString());
+ string buildDir = Path.Combine(root, "build-" + architecture);
var isa = architecture == TargetArchitecture.ARM64 ? "-DASTCENC_ISA_NEON=ON" : "-DASTCENC_ISA_SSE2=ON";
var lib = architecture == TargetArchitecture.ARM64 ? "astcenc-neon-static.lib" : "astcenc-sse2-static.lib";
SetupDirectory(buildDir, true);
@@ -84,11 +83,11 @@ namespace Flax.Deps.Dependencies
BuildCmake(buildDir);
var depsFolder = GetThirdPartyFolder(options, platform, architecture);
Utilities.FileCopy(Path.Combine(buildDir, "Source/Release", lib), Path.Combine(depsFolder, "astcenc.lib"));
- }
- break;
+ break;
+ }
case TargetPlatform.Mac:
{
- string buildDir = Path.Combine(root, "build-" + architecture.ToString());
+ string buildDir = Path.Combine(root, "build-" + architecture);
var isa = architecture == TargetArchitecture.ARM64 ? "-DASTCENC_ISA_NEON=ON" : "-DASTCENC_ISA_SSE2=ON";
var lib = architecture == TargetArchitecture.ARM64 ? "libastcenc-neon-static.a" : "libastcenc-sse2-static.a";
SetupDirectory(buildDir, true);
@@ -96,8 +95,8 @@ namespace Flax.Deps.Dependencies
BuildCmake(buildDir);
var depsFolder = GetThirdPartyFolder(options, platform, architecture);
Utilities.FileCopy(Path.Combine(buildDir, "Source", lib), Path.Combine(depsFolder, "libastcenc.a"));
+ break;
}
- break;
}
}
}
diff --git a/Source/Tools/Flax.Build/Deps/Dependencies/curl.cs b/Source/Tools/Flax.Build/Deps/Dependencies/curl.cs
index ceca92798..2d25fed3d 100644
--- a/Source/Tools/Flax.Build/Deps/Dependencies/curl.cs
+++ b/Source/Tools/Flax.Build/Deps/Dependencies/curl.cs
@@ -107,7 +107,7 @@ namespace Flax.Deps.Dependencies
case TargetPlatform.Windows:
{
// Build for Windows
- var buildDir = Path.Combine(root, "build-" + architecture.ToString());
+ var buildDir = Path.Combine(root, "build-" + architecture);
var solutionPath = Path.Combine(buildDir, "CURL.sln");
RunCmake(root, platform, architecture, $"-B\"{buildDir}\" -DBUILD_CURL_EXE=OFF -DBUILD_SHARED_LIBS=OFF -DCURL_STATIC_CRT=OFF");
diff --git a/Source/Tools/Flax.Build/Deps/Dependencies/freetype.cs b/Source/Tools/Flax.Build/Deps/Dependencies/freetype.cs
index ec3ab5e18..d43c73770 100644
--- a/Source/Tools/Flax.Build/Deps/Dependencies/freetype.cs
+++ b/Source/Tools/Flax.Build/Deps/Dependencies/freetype.cs
@@ -15,70 +15,6 @@ namespace Flax.Deps.Dependencies
///
class freetype : Dependency
{
- ///
- public override TargetPlatform[] Platforms
- {
- get
- {
- switch (BuildPlatform)
- {
- case TargetPlatform.Windows:
- return new[]
- {
- TargetPlatform.Windows,
- TargetPlatform.XboxOne,
- TargetPlatform.PS4,
- TargetPlatform.PS5,
- TargetPlatform.XboxScarlett,
- TargetPlatform.Android,
- TargetPlatform.Switch,
- };
- case TargetPlatform.Linux:
- return new[]
- {
- TargetPlatform.Linux,
- };
- case TargetPlatform.Mac:
- return new[]
- {
- TargetPlatform.Mac,
- TargetPlatform.iOS,
- };
- default: return new TargetPlatform[0];
- }
- }
- }
-
- ///
- public override TargetArchitecture[] Architectures
- {
- get
- {
- switch (BuildPlatform)
- {
- case TargetPlatform.Windows:
- return new[]
- {
- TargetArchitecture.x64,
- TargetArchitecture.ARM64,
- };
- case TargetPlatform.Linux:
- return new[]
- {
- TargetArchitecture.x64,
- //TargetArchitecture.ARM64,
- };
- case TargetPlatform.Mac:
- return new[]
- {
- TargetArchitecture.x64,
- TargetArchitecture.ARM64,
- };
- default: return new TargetArchitecture[0];
- }
- }
- }
-
///
public override void Build(BuildOptions options)
{
diff --git a/Source/Tools/Flax.Build/Deps/Dependencies/mono.cs b/Source/Tools/Flax.Build/Deps/Dependencies/mono.cs
index ad402d3d4..a90d1c2a0 100644
--- a/Source/Tools/Flax.Build/Deps/Dependencies/mono.cs
+++ b/Source/Tools/Flax.Build/Deps/Dependencies/mono.cs
@@ -78,6 +78,18 @@ namespace Flax.Deps.Dependencies
TargetArchitecture.x64,
TargetArchitecture.ARM64,
};
+ case TargetPlatform.XboxOne:
+ case TargetPlatform.XboxScarlett:
+ return new[]
+ {
+ TargetArchitecture.x64,
+ };
+ case TargetPlatform.Switch:
+ case TargetPlatform.Android:
+ return new[]
+ {
+ TargetArchitecture.ARM64,
+ };
default: return new TargetArchitecture[0];
}
}
diff --git a/Source/Tools/Flax.Build/Deps/Dependencies/nethost.cs b/Source/Tools/Flax.Build/Deps/Dependencies/nethost.cs
index 0ac16286f..f67244c9b 100644
--- a/Source/Tools/Flax.Build/Deps/Dependencies/nethost.cs
+++ b/Source/Tools/Flax.Build/Deps/Dependencies/nethost.cs
@@ -43,36 +43,6 @@ namespace Flax.Deps.Dependencies
}
}
- ///
- public override TargetArchitecture[] Architectures
- {
- get
- {
- switch (BuildPlatform)
- {
- case TargetPlatform.Windows:
- return new[]
- {
- TargetArchitecture.x64,
- TargetArchitecture.ARM64,
- };
- case TargetPlatform.Linux:
- return new[]
- {
- TargetArchitecture.x64,
- //TargetArchitecture.ARM64,
- };
- case TargetPlatform.Mac:
- return new[]
- {
- TargetArchitecture.x64,
- TargetArchitecture.ARM64,
- };
- default: return new TargetArchitecture[0];
- }
- }
- }
-
///
public override bool BuildByDefault => false;
diff --git a/Source/Tools/Flax.Build/Deps/Dependencies/vorbis.cs b/Source/Tools/Flax.Build/Deps/Dependencies/vorbis.cs
index c19fab782..15ca415da 100644
--- a/Source/Tools/Flax.Build/Deps/Dependencies/vorbis.cs
+++ b/Source/Tools/Flax.Build/Deps/Dependencies/vorbis.cs
@@ -15,70 +15,6 @@ namespace Flax.Deps.Dependencies
///
class vorbis : Dependency
{
- ///
- public override TargetPlatform[] Platforms
- {
- get
- {
- switch (BuildPlatform)
- {
- case TargetPlatform.Windows:
- return new[]
- {
- TargetPlatform.Windows,
- TargetPlatform.XboxOne,
- TargetPlatform.PS4,
- TargetPlatform.PS5,
- TargetPlatform.XboxScarlett,
- TargetPlatform.Android,
- TargetPlatform.Switch,
- };
- case TargetPlatform.Linux:
- return new[]
- {
- TargetPlatform.Linux,
- };
- case TargetPlatform.Mac:
- return new[]
- {
- TargetPlatform.Mac,
- TargetPlatform.iOS,
- };
- default: return new TargetPlatform[0];
- }
- }
- }
-
- ///
- public override TargetArchitecture[] Architectures
- {
- get
- {
- switch (BuildPlatform)
- {
- case TargetPlatform.Windows:
- return new[]
- {
- TargetArchitecture.x64,
- TargetArchitecture.ARM64,
- };
- case TargetPlatform.Linux:
- return new[]
- {
- TargetArchitecture.x64,
- //TargetArchitecture.ARM64,
- };
- case TargetPlatform.Mac:
- return new[]
- {
- TargetArchitecture.x64,
- TargetArchitecture.ARM64,
- };
- default: return new TargetArchitecture[0];
- }
- }
- }
-
private struct Binary
{
public string Filename;
diff --git a/Source/Tools/Flax.Build/Deps/Dependency.cs b/Source/Tools/Flax.Build/Deps/Dependency.cs
index 381783e29..7286bf9f3 100644
--- a/Source/Tools/Flax.Build/Deps/Dependency.cs
+++ b/Source/Tools/Flax.Build/Deps/Dependency.cs
@@ -52,7 +52,6 @@ namespace Flax.Deps
///
protected static TargetPlatform BuildPlatform => Platform.BuildPlatform.Target;
-
private static Version? _cmakeVersion;
protected static Version CMakeVersion
{
@@ -60,11 +59,19 @@ namespace Flax.Deps
{
if (_cmakeVersion == null)
{
- var versionOutput = Utilities.ReadProcessOutput("cmake", "--version");
- var versionStart = versionOutput.IndexOf("cmake version ") + "cmake version ".Length;
- var versionEnd = versionOutput.IndexOfAny(['-', '\n', '\r'], versionStart); // End of line or dash before Git hash
- var versionString = versionOutput.Substring(versionStart, versionEnd - versionStart);
- _cmakeVersion = new Version(versionString);
+ try
+ {
+ var versionOutput = Utilities.ReadProcessOutput("cmake", "--version");
+ var versionStart = versionOutput.IndexOf("cmake version ") + "cmake version ".Length;
+ var versionEnd = versionOutput.IndexOfAny(['-', '\n', '\r'], versionStart); // End of line or dash before Git hash
+ var versionString = versionOutput.Substring(versionStart, versionEnd - versionStart);
+ _cmakeVersion = new Version(versionString);
+ }
+ catch (Exception)
+ {
+ // Assume old version by default (in case of errors)
+ _cmakeVersion = new Version(3, 0);
+ }
}
return _cmakeVersion;
}
@@ -73,12 +80,95 @@ namespace Flax.Deps
///
/// Gets the platforms list supported by this dependency to build on the current build platform (based on ).
///
- public abstract TargetPlatform[] Platforms { get; }
+ public virtual TargetPlatform[] Platforms
+ {
+ get
+ {
+ // The most common build setup
+ switch (BuildPlatform)
+ {
+ case TargetPlatform.Windows:
+ return new[]
+ {
+ TargetPlatform.Windows,
+ TargetPlatform.XboxOne,
+ TargetPlatform.XboxScarlett,
+ TargetPlatform.PS4,
+ TargetPlatform.PS5,
+ TargetPlatform.Android,
+ TargetPlatform.Switch,
+ };
+ case TargetPlatform.Linux:
+ return new[]
+ {
+ TargetPlatform.Linux,
+ };
+ case TargetPlatform.Mac:
+ return new[]
+ {
+ TargetPlatform.Mac,
+ TargetPlatform.iOS,
+ };
+ default: return new TargetPlatform[0];
+ }
+ }
+ }
///
/// Gets the architectures list supported by this dependency to build on the current build platform (based on ).
///
- public abstract TargetArchitecture[] Architectures { get; }
+ public virtual TargetArchitecture[] Architectures
+ {
+ get
+ {
+ // Default value returns all supported architectures for all supported platforms
+ switch (BuildPlatform)
+ {
+ case TargetPlatform.Windows:
+ return new[]
+ {
+ TargetArchitecture.x64,
+ TargetArchitecture.ARM64,
+ };
+ case TargetPlatform.Linux:
+ return new[]
+ {
+ TargetArchitecture.x64,
+ //TargetArchitecture.ARM64,
+ };
+ case TargetPlatform.Mac:
+ return new[]
+ {
+ TargetArchitecture.x64,
+ TargetArchitecture.ARM64,
+ };
+ case TargetPlatform.XboxOne:
+ case TargetPlatform.XboxScarlett:
+ case TargetPlatform.PS4:
+ case TargetPlatform.PS5:
+ return new[]
+ {
+ TargetArchitecture.x64,
+ };
+ case TargetPlatform.Switch:
+ return new[]
+ {
+ TargetArchitecture.ARM64,
+ };
+ case TargetPlatform.Android:
+ return new[]
+ {
+ TargetArchitecture.ARM64,
+ };
+ case TargetPlatform.iOS:
+ return new[]
+ {
+ TargetArchitecture.ARM64,
+ };
+ default: return new TargetArchitecture[0];
+ }
+ }
+ }
///
/// True if build dependency by default, otherwise only when explicitly specified via command line.