| /* Distributed under the OSI-approved BSD 3-Clause License.  See accompanying | 
 |    file Copyright.txt or https://cmake.org/licensing for details.  */ | 
 |  | 
 | #include "cmTargetPropertyComputer.h" | 
 |  | 
 | #include <sstream> | 
 |  | 
 | #include "cmMakefile.h" | 
 | #include "cmMessageType.h" | 
 | #include "cmPolicies.h" | 
 |  | 
 | bool cmTargetPropertyComputer::HandleLocationPropertyPolicy( | 
 |   std::string const& tgtName, cmMakefile const& mf) | 
 | { | 
 |   std::ostringstream e; | 
 |   const char* modal = nullptr; | 
 |   MessageType messageType = MessageType::AUTHOR_WARNING; | 
 |   switch (mf.GetPolicyStatus(cmPolicies::CMP0026)) { | 
 |     case cmPolicies::WARN: | 
 |       e << cmPolicies::GetPolicyWarning(cmPolicies::CMP0026) << "\n"; | 
 |       modal = "should"; | 
 |       CM_FALLTHROUGH; | 
 |     case cmPolicies::OLD: | 
 |       break; | 
 |     case cmPolicies::REQUIRED_ALWAYS: | 
 |     case cmPolicies::REQUIRED_IF_USED: | 
 |     case cmPolicies::NEW: | 
 |       modal = "may"; | 
 |       messageType = MessageType::FATAL_ERROR; | 
 |       break; | 
 |   } | 
 |  | 
 |   if (modal) { | 
 |     e << "The LOCATION property " << modal << " not be read from target \"" | 
 |       << tgtName | 
 |       << "\".  Use the target name directly with " | 
 |          "add_custom_command, or use the generator expression $<TARGET_FILE>, " | 
 |          "as appropriate.\n"; | 
 |     mf.IssueMessage(messageType, e.str()); | 
 |   } | 
 |  | 
 |   return messageType != MessageType::FATAL_ERROR; | 
 | } |