From 1d04d2ce3609da4c4f8d59ccfabd8848a6e765d4 Mon Sep 17 00:00:00 2001 From: Brad King Date: Tue, 14 Feb 2017 11:15:08 -0500 Subject: VS: Refactor parsing of CMAKE__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. --- Source/cmVisualStudio10TargetGenerator.cxx | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx index a7edc95..a60222e 100644 --- a/Source/cmVisualStudio10TargetGenerator.cxx +++ b/Source/cmVisualStudio10TargetGenerator.cxx @@ -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 libVec; - cmSystemTools::ExpandListArgument(libs, libVec); + cmSystemTools::ParseWindowsCommandLine(libs.c_str(), libVec); cmComputeLinkInformation* pcli = this->GeneratorTarget->GetLinkInformation(config.c_str()); -- cgit v0.12