summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2017-02-14 16:15:08 (GMT)
committerBrad King <brad.king@kitware.com>2017-02-14 16:15:08 (GMT)
commit1d04d2ce3609da4c4f8d59ccfabd8848a6e765d4 (patch)
tree7c6e638e8b327a719279055c8e9c5db579bf0f9d
parent34ce3017b530595753b5987bd0702aceded683be (diff)
downloadCMake-1d04d2ce3609da4c4f8d59ccfabd8848a6e765d4.zip
CMake-1d04d2ce3609da4c4f8d59ccfabd8848a6e765d4.tar.gz
CMake-1d04d2ce3609da4c4f8d59ccfabd8848a6e765d4.tar.bz2
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.
-rw-r--r--Source/cmVisualStudio10TargetGenerator.cxx16
1 files 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<std::string> libVec;
- cmSystemTools::ExpandListArgument(libs, libVec);
+ cmSystemTools::ParseWindowsCommandLine(libs.c_str(), libVec);
cmComputeLinkInformation* pcli =
this->GeneratorTarget->GetLinkInformation(config.c_str());