1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-10 20:42:21 +02:00

Fixed dep-of-dep checks

This commit is contained in:
Brian Fiete 2020-05-12 06:44:09 -07:00
parent 962ebba6e9
commit 0a7e0e01e6
3 changed files with 83 additions and 81 deletions

View file

@ -58,6 +58,9 @@ namespace IDE
if (trigger == .Never)
return .NoCommands;
List<Project> depProjectList = scope .();
gApp.GetDependentProjectList(project, depProjectList);
if ((trigger == .IfFilesChanged) && (!project.mForceCustomCommands))
{
int64 highestDateTime = 0;
@ -66,7 +69,7 @@ namespace IDE
bool forceRebuild = false;
for (var depName in project.mDependencies)
for (var depName in depProjectList)
{
var depProject = gApp.mWorkspace.FindProject(depName.mProjectName);
if (depProject != null)
@ -341,15 +344,7 @@ namespace IDE
gApp.GetDependentProjectList(project, depProjectList);
if (depProjectList.Count > 0)
{
for (var dep in project.mDependencies)
{
var depProject = gApp.mWorkspace.FindProject(dep.mProjectName);
if (depProject == null)
{
gApp.OutputLine("Failed to locate dependent library: {0}", dep.mProjectName);
return false;
}
else
for (var depProject in depProjectList)
{
/*if (depProject.mNeedsTargetRebuild)
project.mNeedsTargetRebuild = true;*/
@ -368,7 +363,6 @@ namespace IDE
}
}
/*String depLibTargetPath = scope String();
ResolveConfigString(depProject, depOptions, "$(TargetPath)", error, depLibTargetPath);
IDEUtils.FixFilePath(depLibTargetPath);
@ -382,7 +376,6 @@ namespace IDE
linkLine.Append(" ");*/
}
}
}
#if BF_PLATFORM_WINDOWS
String gccExePath = "c:/mingw/bin/g++.exe";
@ -645,15 +638,7 @@ namespace IDE
gApp.GetDependentProjectList(project, depProjectList);
if (depProjectList.Count > 0)
{
for (var dep in project.mDependencies)
{
var depProject = gApp.mWorkspace.FindProject(dep.mProjectName);
if (depProject == null)
{
gApp.OutputLine("Failed to locate dependent library: {0}", dep.mProjectName);
return false;
}
else
for (var depProject in depProjectList)
{
var depOptions = gApp.GetCurProjectOptions(depProject);
if (depOptions != null)
@ -694,7 +679,6 @@ namespace IDE
}
}
}
}
/*if (File.Delete(targetPath).Failed(true))
{

View file

@ -2217,14 +2217,27 @@ namespace IDE
public bool HasDependency(String projectName)
{
for (var dependency in mDependencies)
HashSet<Project> checkedProject = scope .();
bool CheckDependency(Project project)
{
if (!checkedProject.Add(project))
return false;
for (var dependency in project.mDependencies)
{
if (dependency.mProjectName == projectName)
return true;
let depProject = gApp.mWorkspace.FindProject(dependency.mProjectName);
if ((depProject != null) && (CheckDependency(depProject)))
return true;
}
return false;
}
return CheckDependency(this);
}
public void SetupDefault(Options options, String configName, String platformName)
{
bool isRelease = configName.Contains("Release");

View file

@ -1242,8 +1242,13 @@ namespace IDE
if (depProject == null)
return;
List<Project> depProjectList = scope .();
gApp.GetDependentProjectList(depProject, depProjectList);
for (let checkProject in gApp.mWorkspace.mProjects)
{
if (checkProject.mGeneralOptions.mTargetType == .BeefLib)
continue;
if (checkProject.HasDependency(depProject.mProjectName))
{
List<String> targetPaths = scope .();