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:
parent
962ebba6e9
commit
0a7e0e01e6
3 changed files with 83 additions and 81 deletions
|
@ -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))
|
||||
{
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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 .();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue