From 0caca40fccead726db6c4d5f5b4ea990958914df Mon Sep 17 00:00:00 2001 From: Brad King Date: Thu, 27 Oct 2016 10:39:06 -0400 Subject: VS: Fix use of `Windows7.1SDK` 64-bit toolset with VS 2010 Express Refactoring in commit 584ab528 (VS: Add internal API to get platform toolset as string, 2016-10-18) accidentally changed the semantics of the original `cmGlobalVisualStudio10Generator::GetPlatformToolset` implementation to return a pointer to an empty string instead of `nullptr` when no toolset is configured. This broke cases that tested for `nullptr` to detect the lack of any specific toolset, such as the call in `Find64BitTools`. Restore the `nullptr` return in this case. --- Source/cmGlobalVisualStudio10Generator.cxx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Source/cmGlobalVisualStudio10Generator.cxx b/Source/cmGlobalVisualStudio10Generator.cxx index 793c605..5c010b4 100644 --- a/Source/cmGlobalVisualStudio10Generator.cxx +++ b/Source/cmGlobalVisualStudio10Generator.cxx @@ -339,7 +339,11 @@ void cmGlobalVisualStudio10Generator::EnableLanguage( const char* cmGlobalVisualStudio10Generator::GetPlatformToolset() const { - return this->GetPlatformToolsetString().c_str(); + std::string const& toolset = this->GetPlatformToolsetString(); + if (toolset.empty()) { + return CM_NULLPTR; + } + return toolset.c_str(); } std::string const& cmGlobalVisualStudio10Generator::GetPlatformToolsetString() -- cgit v0.12