diff --git a/uppsrc/ide/Builders/Build.cpp b/uppsrc/ide/Builders/Build.cpp index 19a157542..1caa8f340 100644 --- a/uppsrc/ide/Builders/Build.cpp +++ b/uppsrc/ide/Builders/Build.cpp @@ -135,6 +135,7 @@ One MakeBuild::CreateBuilder(Host *host) b->debug_link = bm.Get("DEBUG_LINK", ""); b->release_link = bm.Get("RELEASE_LINK", ""); b->script = bm.Get("SCRIPT", ""); + b->main_conf = !!main_conf.GetCount(); return b; } @@ -377,17 +378,18 @@ bool MakeBuild::Build(const Workspace& wspc, String mainparam, String outfile, b BeginBuilding(true, clear_console); bool ok = true; if(wspc.GetCount()) { - String main_conf; for(int i = 0; i < wspc.GetCount(); i++) { const Package& pk = wspc.package[i]; for(int j = 0; j < pk.GetCount(); j++) if(pk[j] == "main.conf") { String pn = wspc[i]; - main_conf << "// " << pn << "\r\n" - << LoadFile(SourcePath(pn, "main.conf")) << "\r\n"; + String p = SourcePath(pn, "main.conf"); + main_conf << "// " << pn << "\r\n" << LoadFile(p) << "\r\n"; + PutConsole("Found " + p); } } - { + + if(main_conf.GetCount()) { VectorMap bm = GetMethodVars(method); One host = CreateHost(false); One b = CreateBuilder(~host); @@ -397,6 +399,7 @@ bool MakeBuild::Build(const Workspace& wspc, String mainparam, String outfile, b String path = AppendFileName(outdir, "main.conf.h"); RealizePath(path); SaveChangedFile(path, main_conf); + PutConsole("Saving " + path); add_includes << outdir << ';'; } } diff --git a/uppsrc/ide/Builders/Build.h b/uppsrc/ide/Builders/Build.h index 3bc5b83be..25dc55f1b 100644 --- a/uppsrc/ide/Builders/Build.h +++ b/uppsrc/ide/Builders/Build.h @@ -60,6 +60,7 @@ struct MakeBuild { bool use_target; String mainconfigparam; String add_includes; + String main_conf; const TargetMode& GetTargetMode(); Index PackageConfig(const Workspace& wspc, int package, const VectorMap& bm, diff --git a/uppsrc/ide/Builders/CppBuilder.cpp b/uppsrc/ide/Builders/CppBuilder.cpp index 545287baa..531014cf6 100644 --- a/uppsrc/ide/Builders/CppBuilder.cpp +++ b/uppsrc/ide/Builders/CppBuilder.cpp @@ -393,7 +393,8 @@ String CppBuilder::DefinesTargetTime(const char *sep, const String& package, con cc << sep << "bmHOUR=" << (int)t.hour; cc << sep << "bmMINUTE=" << (int)t.minute; cc << sep << "bmSECOND=" << (int)t.second; - cc << sep << "MAIN_CONF"; + if(main_conf) + cc << sep << "MAIN_CONF"; targettime = GetFileTime(target); return cc; } diff --git a/uppsrc/ide/Core/Core.h b/uppsrc/ide/Core/Core.h index b7b55ca6a..85f5ce74a 100644 --- a/uppsrc/ide/Core/Core.h +++ b/uppsrc/ide/Core/Core.h @@ -385,6 +385,7 @@ struct Builder { String script; String mainpackage; bool doall; + bool main_conf; virtual bool BuildPackage(const String& package, Vector& linkfile, String& linkoptions, const Vector& all_uses, const Vector& all_libraries, int optimize) @@ -399,7 +400,7 @@ struct Builder { const Index& common_config, bool exporting) {} virtual String GetTargetExt() const = 0; - Builder() { doall = false; } + Builder() { doall = false; main_conf = false; } virtual ~Builder() {} };