mirror of
https://gitlab.kitware.com/cmake/cmake.git
synced 2026-10-07 04:02:23 +03:00
VS: Refactor parsing of CMAKE_<LANG>_STANDARD_LIBRARIES
Parse the value as a command line string just as the MS CRT would. This makes the VS generator behavior consistent with how the string is used by the Ninja and Makefile generators.
This commit is contained in:
1 parent
34ce3017b5
commit
1d04d2ce36
1 file changed
+2
-14
@@ -2784,22 +2784,10 @@ bool cmVisualStudio10TargetGenerator::ComputeLinkOptions(
|
||||
std::string standardLibsVar = "CMAKE_";
|
||||
standardLibsVar += linkLanguage;
|
||||
standardLibsVar += "_STANDARD_LIBRARIES";
|
||||
std::string libs =
|
||||
std::string const libs =
|
||||
this->Makefile->GetSafeDefinition(standardLibsVar.c_str());
|
||||
// Remove trailing spaces from libs
|
||||
std::string::size_type pos = libs.size() - 1;
|
||||
if (!libs.empty()) {
|
||||
while (libs[pos] == ' ') {
|
||||
pos--;
|
||||
}
|
||||
}
|
||||
if (pos != libs.size() - 1) {
|
||||
libs = libs.substr(0, pos + 1);
|
||||
}
|
||||
// Replace spaces in libs with ;
|
||||
std::replace(libs.begin(), libs.end(), ' ', ';');
|
||||
std::vector<std::string> libVec;
|
||||
cmSystemTools::ExpandListArgument(libs, libVec);
|
||||
cmSystemTools::ParseWindowsCommandLine(libs.c_str(), libVec);
|
||||
|
||||
cmComputeLinkInformation* pcli =
|
||||
this->GeneratorTarget->GetLinkInformation(config.c_str());
|
||||
|
||||
Reference in new issue
Block a user