diff --git a/uppsrc/ide/Core/Cache.cpp b/uppsrc/ide/Core/Cache.cpp index f9333a096..ed15271ff 100644 --- a/uppsrc/ide/Core/Cache.cpp +++ b/uppsrc/ide/Core/Cache.cpp @@ -3,10 +3,18 @@ String CacheDir() { String dir; -#ifdef PLATFORM_WIN32 - dir = ConfigFile("cache"); +#ifdef _DEBUG + #ifdef PLATFORM_WIN32 + dir = ConfigFile("cache.debug"); + #else + dir = ConfigFile(".cache/upp.cache.debug"); + #endif #else - dir = ConfigFile(".cache/upp.cache"); + #ifdef PLATFORM_WIN32 + dir = ConfigFile("cache"); + #else + dir = ConfigFile(".cache/upp.cache"); + #endif #endif ONCELOCK { RealizeDirectory(dir); diff --git a/uppsrc/ide/OutputMode.cpp b/uppsrc/ide/OutputMode.cpp index 73cca447d..f8ee37fa0 100644 --- a/uppsrc/ide/OutputMode.cpp +++ b/uppsrc/ide/OutputMode.cpp @@ -433,6 +433,8 @@ void Ide::SyncBuildMode() String h = method + ' '; h << (targetmode ? "Release" : "Debug"); buildmode <<= h; + TriggerIndexer(); + editor.TriggerSyncFile(0); } void Ide::DropMethodList() diff --git a/uppsrc/ide/clang/clang.cpp b/uppsrc/ide/clang/clang.cpp index 5dc3438ab..15628b0ff 100644 --- a/uppsrc/ide/clang/clang.cpp +++ b/uppsrc/ide/clang/clang.cpp @@ -103,8 +103,18 @@ bool Clang::Parse(const String& filename_, const String& content, Vector args; - for(const String& s : Split(includes, ';')) + for(const String& s : Split(includes, ';')) { +#ifdef PLATFORM_WIN32 // we need to ignore internal VC++ headers + static VectorMap use; + int q = use.Find(s); + if(q < 0) { + q = use.GetCount(); + use.Add(s, !FileExists(AppendFileName(s, "vcruntime.h"))); + } + if(use[q]) +#endif args.Add("-I" + s); + } if(iquote.GetCount()) // path to real_filename for #include "xxx" handling args.Add("-I" + iquote);