From 5c4cf56af01624143f3341e0e5dd3e993c68df8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=98ystein=20Krog?= Date: Tue, 28 Jan 2014 14:18:00 +0100 Subject: [PATCH] Fix Visual Studio lookup logic to handle Visual Studio 2012 and 2013 (11.0 and 12.0) environment variables --- src/CppParser/VSLookup.cpp | 16 +++++++++++++++- src/Parser/VSLookup.cpp | 10 +++++++--- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/src/CppParser/VSLookup.cpp b/src/CppParser/VSLookup.cpp index 8098bcc9..9bc6e550 100644 --- a/src/CppParser/VSLookup.cpp +++ b/src/CppParser/VSLookup.cpp @@ -199,6 +199,8 @@ static bool getVisualStudioDir(std::string &path) { } // Try the environment. + const char *vs120comntools = getenv("VS120COMNTOOLS"); + const char *vs110comntools = getenv("VS110COMNTOOLS"); const char *vs100comntools = getenv("VS100COMNTOOLS"); const char *vs90comntools = getenv("VS90COMNTOOLS"); const char *vs80comntools = getenv("VS80COMNTOOLS"); @@ -206,7 +208,15 @@ static bool getVisualStudioDir(std::string &path) { // Try to find the version that we were compiled with if(false) {} - #if (_MSC_VER >= 1600) // VC100 + #if (_MSC_VER >= 1800) // VC120 + else if (vs120comntools) { + vscomntools = vs120comntools; + } + #elif (_MSC_VER == 1700) // VC110 + else if (vs110comntools) { + vscomntools = vs110comntools; + } + #elif (_MSC_VER == 1600) // VC100 else if(vs100comntools) { vscomntools = vs100comntools; } @@ -220,6 +230,10 @@ static bool getVisualStudioDir(std::string &path) { } #endif // Otherwise find any version we can + else if (vs120comntools) + vscomntools = vs120comntools; + else if (vs110comntools) + vscomntools = vs110comntools; else if (vs100comntools) vscomntools = vs100comntools; else if (vs90comntools) diff --git a/src/Parser/VSLookup.cpp b/src/Parser/VSLookup.cpp index 902c14d6..db17680d 100644 --- a/src/Parser/VSLookup.cpp +++ b/src/Parser/VSLookup.cpp @@ -230,12 +230,16 @@ static bool getVisualStudioDir(std::string &path) { } #endif // Otherwise find any version we can + else if (vs120comntools) + vscomntools = vs120comntools; + else if (vs110comntools) + vscomntools = vs110comntools; else if (vs100comntools) - vscomntools = vs100comntools; + vscomntools = vs100comntools; else if (vs90comntools) - vscomntools = vs90comntools; + vscomntools = vs90comntools; else if (vs80comntools) - vscomntools = vs80comntools; + vscomntools = vs80comntools; if (vscomntools && *vscomntools) { const char *p = strstr(vscomntools, "\\Common7\\Tools");