| 5571 | } |
| 5572 | |
| 5573 | std::string cmGeneratorTarget::GetSupportDirectory( |
| 5574 | cmStateEnums::IntermediateDirKind kind) const |
| 5575 | { |
| 5576 | cmLocalGenerator* lg = this->GetLocalGenerator(); |
| 5577 | auto targetDir = cmStrCat(lg->GetObjectOutputRoot(kind), '/', |
| 5578 | lg->GetTargetDirectory(this, kind)); |
| 5579 | |
| 5580 | #ifndef CMAKE_BOOTSTRAP |
| 5581 | auto& tdr = |
| 5582 | this->GetGlobalGenerator()->RegisterTargetDirectory(this, targetDir); |
| 5583 | if (tdr.CollidesWith && !tdr.Warned) { |
| 5584 | this->Makefile->IssueMessage( |
| 5585 | MessageType::WARNING, |
| 5586 | cmStrCat("The '", tdr.CollidesWith->GetName(), "' and '", |
| 5587 | this->GetName(), |
| 5588 | "' targets share an intermediate directory\n ", targetDir, |
| 5589 | "\nwhich may cause problems with the build graph. This project " |
| 5590 | "is not compatible with the `SHORT` target intermediate " |
| 5591 | "directory strategy. Possible remedies include: moving the " |
| 5592 | "target into different directories or renaming a target.")); |
| 5593 | tdr.Warned = true; |
| 5594 | } |
| 5595 | #endif |
| 5596 | |
| 5597 | return targetDir; |
| 5598 | } |
| 5599 | |
| 5600 | std::string cmGeneratorTarget::GetCMFSupportDirectory( |
| 5601 | cmStateEnums::IntermediateDirKind kind) const |
no test coverage detected