| /* Distributed under the OSI-approved BSD 3-Clause License.  See accompanying | 
 |    file Copyright.txt or https://cmake.org/licensing for details.  */ | 
 | #include "cmGlobalMSYSMakefileGenerator.h" | 
 |  | 
 | #include <cmext/string_view> | 
 |  | 
 | #include "cmsys/FStream.hxx" | 
 |  | 
 | #include "cmMakefile.h" | 
 | #include "cmState.h" | 
 | #include "cmStringAlgorithms.h" | 
 | #include "cmSystemTools.h" | 
 | #include "cmake.h" | 
 |  | 
 | cmGlobalMSYSMakefileGenerator::cmGlobalMSYSMakefileGenerator(cmake* cm) | 
 |   : cmGlobalUnixMakefileGenerator3(cm) | 
 | { | 
 |   this->FindMakeProgramFile = "CMakeMSYSFindMake.cmake"; | 
 |   this->ForceUnixPaths = true; | 
 |   this->ToolSupportsColor = true; | 
 |   this->UseLinkScript = false; | 
 |   cm->GetState()->SetMSYSShell(true); | 
 | } | 
 |  | 
 | std::string cmGlobalMSYSMakefileGenerator::FindMinGW( | 
 |   std::string const& makeloc) | 
 | { | 
 |   std::string fstab = cmStrCat(makeloc, "/../etc/fstab"); | 
 |   cmsys::ifstream fin(fstab.c_str()); | 
 |   std::string path; | 
 |   std::string mount; | 
 |   std::string mingwBin; | 
 |   while (fin) { | 
 |     fin >> path; | 
 |     fin >> mount; | 
 |     if (mount == "/mingw"_s) { | 
 |       mingwBin = cmStrCat(path, "/bin"); | 
 |     } | 
 |   } | 
 |   return mingwBin; | 
 | } | 
 |  | 
 | void cmGlobalMSYSMakefileGenerator::EnableLanguage( | 
 |   std::vector<std::string> const& l, cmMakefile* mf, bool optional) | 
 | { | 
 |   mf->AddDefinition("MSYS", "1"); | 
 |   this->cmGlobalUnixMakefileGenerator3::EnableLanguage(l, mf, optional); | 
 |  | 
 |   if (!mf->IsSet("CMAKE_AR") && !this->CMakeInstance->GetIsInTryCompile() && | 
 |       !(1 == l.size() && l[0] == "NONE"_s)) { | 
 |     cmSystemTools::Error( | 
 |       "CMAKE_AR was not found, please set to archive program. " + | 
 |       mf->GetSafeDefinition("CMAKE_AR")); | 
 |   } | 
 | } | 
 |  | 
 | cmDocumentationEntry cmGlobalMSYSMakefileGenerator::GetDocumentation() | 
 | { | 
 |   return { cmGlobalMSYSMakefileGenerator::GetActualName(), | 
 |            "Generates MSYS makefiles." }; | 
 | } |