| 1138 | } |
| 1139 | |
| 1140 | BfProject::DependencyKind BfProject::GetDependencyKind(BfProject* project) |
| 1141 | { |
| 1142 | DependencyKind* depKindPtr = NULL; |
| 1143 | if (mDependencyKindDict.TryAdd(project, NULL, &depKindPtr)) |
| 1144 | { |
| 1145 | *depKindPtr = DependencyKind_None; |
| 1146 | if (project == this) |
| 1147 | { |
| 1148 | *depKindPtr = DependencyKind_Identity; |
| 1149 | } |
| 1150 | else if (HasDependency(project)) |
| 1151 | { |
| 1152 | *depKindPtr = DependencyKind_Dependency; |
| 1153 | } |
| 1154 | else if (project->HasDependency(this)) |
| 1155 | { |
| 1156 | *depKindPtr = DependencyKind_Dependent_Exclusive; |
| 1157 | |
| 1158 | for (auto checkProject : mSystem->mProjects) |
| 1159 | { |
| 1160 | if ((checkProject == this) || (checkProject == project) || (checkProject->mDisabled)) |
| 1161 | continue; |
| 1162 | if (checkProject->HasDependency(this)) |
| 1163 | { |
| 1164 | if (!checkProject->HasDependency(project)) |
| 1165 | { |
| 1166 | *depKindPtr = DependencyKind_Dependent_Shared; |
| 1167 | } |
| 1168 | } |
| 1169 | } |
| 1170 | } |
| 1171 | } |
| 1172 | return *depKindPtr; |
| 1173 | } |
| 1174 | |
| 1175 | ////////////////////////////////////////////////////////////////////////// |
| 1176 |
no test coverage detected