Merge commit '272ffe2ea22eecb8f7cd6662efc1cadbe5593feb' into dotnet7

This commit is contained in:
Wojtek Figat
2023-02-27 23:17:04 +01:00
63 changed files with 850 additions and 525 deletions

View File

@@ -40,6 +40,7 @@ namespace Flax.Build
var configurationName = "Debug";
var configurationText = configurationName;
var targetBuildOptions = GetBuildOptions(target, platform, toolchain, architecture, configuration, project.WorkspaceRootPath);
targetBuildOptions.Flags |= BuildFlags.GenerateProject;
var modules = CollectModules(rules, platform, target, targetBuildOptions, toolchain, architecture, configuration);
foreach (var module in modules)
{
@@ -65,6 +66,7 @@ namespace Flax.Build
configurationName = "Release";
configurationText = configurationName;
targetBuildOptions = GetBuildOptions(target, platform, toolchain, architecture, configuration, project.WorkspaceRootPath);
targetBuildOptions.Flags |= BuildFlags.GenerateProject;
modules = CollectModules(rules, platform, target, targetBuildOptions, toolchain, architecture, configuration);
foreach (var module in modules)
{
@@ -115,6 +117,7 @@ namespace Flax.Build
var toolchain = platform.TryGetToolchain(architecture);
var targetBuildOptions = GetBuildOptions(target, platform, toolchain, architecture, configuration, project.WorkspaceRootPath);
targetBuildOptions.Flags |= BuildFlags.GenerateProject;
var modules = CollectModules(rules, platform, target, targetBuildOptions, toolchain, architecture, configuration);
foreach (var module in modules)
{
@@ -275,6 +278,7 @@ namespace Flax.Build
try
{
var referenceBuildOptions = GetBuildOptions(referenceTarget, configurationData.TargetBuildOptions.Platform, configurationData.TargetBuildOptions.Toolchain, configurationData.Architecture, configurationData.Configuration, reference.Project.ProjectFolderPath);
referenceBuildOptions.Flags |= BuildFlags.GenerateProject;
var referenceModules = CollectModules(rules, referenceBuildOptions.Platform, referenceTarget, referenceBuildOptions, referenceBuildOptions.Toolchain, referenceBuildOptions.Architecture, referenceBuildOptions.Configuration);
var referenceBinaryModules = GetBinaryModules(projectInfo, referenceTarget, referenceModules);
foreach (var binaryModule in referenceBinaryModules)
@@ -504,6 +508,8 @@ namespace Flax.Build
var platform = Platform.BuildPlatform;
var architecture = TargetArchitecture.x64;
var configuration = TargetConfiguration.Debug;
var buildOptions = GetBuildOptions(target, platform, null, architecture, configuration, project.WorkspaceRootPath);
buildOptions.Flags |= BuildFlags.GenerateProject;
project.Configurations.Add(new Project.ConfigurationData
{
Platform = platform.Target,
@@ -513,7 +519,7 @@ namespace Flax.Build
Configuration = configuration,
ConfigurationName = configuration.ToString(),
Target = target,
TargetBuildOptions = GetBuildOptions(target, platform, null, architecture, configuration, project.WorkspaceRootPath),
TargetBuildOptions = buildOptions,
Modules = new Dictionary<Module, BuildOptions>(),
});
}

View File

@@ -171,6 +171,7 @@ namespace Flax.Build
OutputFolder = mainModuleOutputPath,
WorkingDirectory = exeBuildOptions.WorkingDirectory,
HotReloadPostfix = exeBuildOptions.HotReloadPostfix,
Flags = exeBuildOptions.Flags,
};
mainModuleOptions.SourcePaths.Add(mainModule.FolderPath);
mainModule.Setup(mainModuleOptions);

View File

@@ -6,6 +6,23 @@ using System.IO;
namespace Flax.Build.NativeCpp
{
/// <summary>
/// The native C++ module build flag types.
/// </summary>
[Flags]
public enum BuildFlags
{
/// <summary>
/// Nothing.
/// </summary>
None = 0,
/// <summary>
/// Projects generation (not actual build, just build setup evaluation).
/// </summary>
GenerateProject = 1,
}
/// <summary>
/// The native C++ module build settings container.
/// </summary>
@@ -131,6 +148,11 @@ namespace Flax.Build.NativeCpp
/// </summary>
public string HotReloadPostfix;
/// <summary>
/// The build flags.
/// </summary>
public BuildFlags Flags;
/// <summary>
/// The full path to the dependencies folder for the current build platform, configuration, and architecture.
/// </summary>
@@ -213,7 +235,7 @@ namespace Flax.Build.NativeCpp
"System.Private.CoreLib",
"System.Private.Uri",
"System.Private.Xml",
"System.Reflection",
"System.Runtime",
"System.Runtime.CompilerServices.Unsafe",

View File

@@ -177,6 +177,7 @@ namespace Flax.Build
OutputFolder = outputPath,
WorkingDirectory = buildData.TargetOptions.WorkingDirectory,
HotReloadPostfix = buildData.TargetOptions.HotReloadPostfix,
Flags = buildData.TargetOptions.Flags,
};
moduleOptions.SourcePaths.Add(module.FolderPath);
module.Setup(moduleOptions);

View File

@@ -342,6 +342,16 @@ namespace Flax.Build.NativeCpp
}
}
// Relative to ThirdParty includes for library includes
if (!isValid && isLibraryInclude)
{
includedFilePath = Path.Combine(Globals.Root, "Source", "ThirdParty", includedFile);
if (FileExists(includedFilePath))
{
isValid = true;
}
}
if (!isValid)
{
// Invalid include