/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmMSVC60LinkLineComputer.h" #if defined(_WIN32) && !defined(__CYGWIN__) #include "cmSystemTools.h" #endif class cmOutputConverter; cmMSVC60LinkLineComputer::cmMSVC60LinkLineComputer( cmOutputConverter* outputConverter, cmStateDirectory const& stateDir) : cmLinkLineComputer(outputConverter, stateDir) { } std::string cmMSVC60LinkLineComputer::ConvertToLinkReference( std::string const& lib) const { #if defined(_WIN32) && !defined(__CYGWIN__) // Work-ardound command line parsing limitations in MSVC 6.0 // Search for the last space. std::string::size_type pos = lib.rfind(' '); if (pos != std::string::npos) { // Find the slash after the last space, if any. pos = lib.find('/', pos); // Convert the portion of the path with a space to a short path. std::string sp; if (cmSystemTools::GetShortPath(lib.substr(0, pos).c_str(), sp)) { // Append the rest of the path with no space. sp += lib.substr(pos); return sp; } } #endif return cmLinkLineComputer::ConvertToLinkReference(lib); }