diff --git a/uppsrc/ide/BaseDlg.cpp b/uppsrc/ide/BaseDlg.cpp index 720fb4297..198502ccf 100644 --- a/uppsrc/ide/BaseDlg.cpp +++ b/uppsrc/ide/BaseDlg.cpp @@ -203,12 +203,13 @@ BaseSetupDlg::BaseSetupDlg() DirSelect(output, output_sel); DirSelect(upv, upv_sel); upv.NullText(GetHubDir()); + output.NullText(GetUppOut()); } bool BaseSetupDlg::Run(String& vars) { upp <<= GetVar("UPP"); - output <<= GetVar("OUTPUT"); + output <<= GetUppOut(); upv <<= GetVar("UPPHUB"); base <<= vars; new_base = IsNull(vars); diff --git a/uppsrc/ide/Build.cpp b/uppsrc/ide/Build.cpp index b111d961f..505e69ad9 100644 --- a/uppsrc/ide/Build.cpp +++ b/uppsrc/ide/Build.cpp @@ -119,7 +119,7 @@ void Ide::PackageClean() void Ide::CleanUppOut() { - String out = GetVar("OUTPUT"); + String out = GetOutputDir(); if(!PromptYesNo(Format("Erase the whole output directory [* \1%s\1]?", out))) return; console.Clear(); diff --git a/uppsrc/ide/Builders/Build.cpp b/uppsrc/ide/Builders/Build.cpp index 5663fcf81..eedaa5d76 100644 --- a/uppsrc/ide/Builders/Build.cpp +++ b/uppsrc/ide/Builders/Build.cpp @@ -261,7 +261,7 @@ String MakeBuild::OutDir(const Index& cfg, const String& package, const Sort(x); for(int i = 0; i < x.GetCount(); i++) x[i] = InitCaps(x[i]); - String outdir = GetVar("OUTPUT"); + String outdir = GetUppOut(); if(output_per_assembly) outdir = AppendFileName(outdir, GetAssemblyId()); if(!use_target) diff --git a/uppsrc/ide/Builders/CCJ.cpp b/uppsrc/ide/Builders/CCJ.cpp index 56b1963d7..e75fc0cda 100644 --- a/uppsrc/ide/Builders/CCJ.cpp +++ b/uppsrc/ide/Builders/CCJ.cpp @@ -174,7 +174,7 @@ void MakeBuild::SaveCCJ(const String& fn, bool exporting) String makefile; Vector uppdirs = GetUppDirs(); - String uppout = exporting ? GetVar("OUTPUT") : ".cache/upp.out"; + String uppout = exporting ? GetUppOut() : ".cache/upp.out"; Index allconfig = PackageConfig(GetIdeWorkspace(), 0, bm, mainconfigparam, host, *b); bool win32 = allconfig.Find("WIN32") >= 0; diff --git a/uppsrc/ide/Builders/Install.cpp b/uppsrc/ide/Builders/Install.cpp index b543b0f16..4c75904f9 100644 --- a/uppsrc/ide/Builders/Install.cpp +++ b/uppsrc/ide/Builders/Install.cpp @@ -194,30 +194,4 @@ void CreateBuildMethods() #endif } -String GetDefaultUppOut() -{ - String out; - String p = GetExeFolder(); - while(p.GetCount() > 1 && DirectoryExists(p)) { - String h = AppendFileName(p, ".cache"); - if(DirectoryExists(h)) { - out = h; - break; - } - p = GetFileFolder(p); - } - - out = Nvl(out, GetHomeDirFile(".cache")) + "/upp.out"; - - RealizeDirectory(out); - return out; -} - -#else - -String GetDefaultUppOut() -{ - return ConfigFile("_out"); -} - #endif diff --git a/uppsrc/ide/Builders/MakeFile.cpp b/uppsrc/ide/Builders/MakeFile.cpp index c28d35838..679dc4349 100644 --- a/uppsrc/ide/Builders/MakeFile.cpp +++ b/uppsrc/ide/Builders/MakeFile.cpp @@ -283,7 +283,7 @@ void MakeBuild::SaveMakeFile(const String& fn, bool exporting) String makefile; Vector uppdirs = GetUppDirs(); - String uppout = exporting ? GetVar("OUTPUT") : ".cache/upp.out"; + String uppout = exporting ? GetUppOut() : ".cache/upp.out"; String inclist; Index allconfig = PackageConfig(GetIdeWorkspace(), 0, bm, mainconfigparam, host, *b); diff --git a/uppsrc/ide/Core/Assembly.cpp b/uppsrc/ide/Core/Assembly.cpp index 3435d0126..d40c0d2ea 100644 --- a/uppsrc/ide/Core/Assembly.cpp +++ b/uppsrc/ide/Core/Assembly.cpp @@ -151,6 +151,41 @@ bool SaveVars(const char *name) return true; } +#ifdef PLATFORM_POSIX + +String GetDefaultUppOut() +{ + String out; + String p = GetExeFolder(); + while(p.GetCount() > 1 && DirectoryExists(p)) { + String h = AppendFileName(p, ".cache"); + if(DirectoryExists(h)) { + out = h; + break; + } + p = GetFileFolder(p); + } + + out = Nvl(out, GetHomeDirFile(".cache")) + "/upp.out"; + + RealizeDirectory(out); + return out; +} + +#else + +String GetDefaultUppOut() +{ + return ConfigFile("out"); +} + +#endif + +String GetUppOut() +{ + return Nvl(GetVar("OUTPUT"), GetDefaultUppOut()); +} + String DefaultHubFilePath() { return ConfigFile("UppHub.path"); diff --git a/uppsrc/ide/Core/Core.h b/uppsrc/ide/Core/Core.h index e1384b1f7..805f8a34e 100644 --- a/uppsrc/ide/Core/Core.h +++ b/uppsrc/ide/Core/Core.h @@ -293,6 +293,8 @@ public: Nest& MainNest(); +String GetUppOut(); + String DefaultHubFilePath(); void SetHubDir(const String& path); diff --git a/uppsrc/ide/Errors.cpp b/uppsrc/ide/Errors.cpp index 297b4eb2c..590a75969 100644 --- a/uppsrc/ide/Errors.cpp +++ b/uppsrc/ide/Errors.cpp @@ -99,7 +99,7 @@ bool Ide::FindLineError(const String& ln, FindLineErrorCache& cache, ListLineInf if(IsNull(f.message)) f.message = ln; Vector conf = SplitFlags(mainconfigparam, true); - String uppout = GetVar("OUTPUT"); + String uppout = GetOutputDir(); int upplen = uppout.GetLength(); if(cache.is_java && f.file.GetLength() > upplen && !MemICmp(f.file, uppout, upplen) && f.file[upplen] == DIR_SEP) { // check for preprocessed file diff --git a/uppsrc/ide/InstantSetup.cpp b/uppsrc/ide/InstantSetup.cpp index b6e7effc6..6a1df70a8 100644 --- a/uppsrc/ide/InstantSetup.cpp +++ b/uppsrc/ide/InstantSetup.cpp @@ -486,8 +486,7 @@ void InstantSetup() String exe = GetExeFilePath(); String dir = GetFileFolder(exe); - String out = GetExeDirFile("out"); - RealizeDirectory(out); + RealizeDirectory(GetUppOut()); for(int i = 0; i < __countof(ass); i++) { String vf = GetExeDirFile(String(ass[i].a) + ".var"); @@ -510,7 +509,6 @@ void InstantSetup() b.Replace("#", dir); SaveFile(vf, "UPP = " + AsCString(b) + ";\r\n" - "OUTPUT = " + AsCString(out) + ";\r\n" ); dirty = true; } diff --git a/uppsrc/ide/SetupGIT.cpp b/uppsrc/ide/SetupGIT.cpp index 75fe9c1a4..0561f76a0 100644 --- a/uppsrc/ide/SetupGIT.cpp +++ b/uppsrc/ide/SetupGIT.cpp @@ -38,15 +38,13 @@ bool SetupGITMaster() } #ifdef PLATFORM_WIN32 - String out = GetExeDirFile("out"); String ass = GetExeFolder(); String myapps = GetExeDirFile("MyApps"); #else - String out = GetHomeDirFile("out"); String ass = GetConfigFolder(); String myapps = GetHomeDirFile("MyApps"); #endif - RealizeDirectory(out); + RealizeDirectory(GetUppOut()); String uppsrc = AppendFileName(dir, "uppsrc"); @@ -58,7 +56,6 @@ bool SetupGITMaster() console.Log("Creating assembly " + a); SaveFile(a, "UPP = " + AsCString(b) + ";\r\n" - "OUTPUT = " + AsCString(out) + ";\r\n" ); }; diff --git a/uppsrc/umk/umake.cpp b/uppsrc/umk/umake.cpp index 3bada1f3b..73d960434 100644 --- a/uppsrc/umk/umake.cpp +++ b/uppsrc/umk/umake.cpp @@ -223,7 +223,7 @@ CONSOLE_APP_MAIN PutVerbose("Assembly file: " + v); PutVerbose("Assembly: " + GetVar("UPP")); } - PutVerbose("Output directory: " + GetVar("OUTPUT")); + PutVerbose("Output directory: " + GetUppOut()); ide.main = param[1]; v = SourcePath(ide.main, GetFileTitle(ide.main) + ".upp"); PutVerbose("Main package: " + v);