From 728d01ef4b8c7537232ac6c5d0b30efbbfff288d Mon Sep 17 00:00:00 2001 From: Perttu Ahola Date: Sun, 25 Mar 2012 23:10:09 +0300 Subject: MSVC build directory autodetection at startup --- src/porting.cpp | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/src/porting.cpp b/src/porting.cpp index 522afa9ef..17d71a33e 100644 --- a/src/porting.cpp +++ b/src/porting.cpp @@ -28,6 +28,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "debug.h" #include "filesys.h" #include "log.h" +#include "utility_string.h" #ifdef __APPLE__ #include "CoreFoundation/CoreFoundation.h" @@ -144,6 +145,13 @@ void pathRemoveFile(char *path, char delim) path[i] = 0; } +bool detectMSVCBuildDir(char *c_path) +{ + std::string path(c_path); + const char *ends[] = {"bin\\Release", "bin\\Build", NULL}; + return (removeStringEnd(path, ends) != ""); +} + void initializePaths() { #ifdef RUN_IN_PLACE @@ -167,9 +175,16 @@ void initializePaths() len = GetModuleFileName(GetModuleHandle(NULL), buf, buflen); assert(len < buflen); pathRemoveFile(buf, '\\'); - - path_share = std::string(buf) + "\\.."; - path_user = std::string(buf) + "\\.."; + + if(detectMSVCBuildDir(buf)){ + infostream<<"MSVC build directory detected"<