diff --git a/uppsrc/ide/Builders/GccBuilder.icpp b/uppsrc/ide/Builders/GccBuilder.icpp index a3e1e5366..5a471c34b 100644 --- a/uppsrc/ide/Builders/GccBuilder.icpp +++ b/uppsrc/ide/Builders/GccBuilder.icpp @@ -65,7 +65,9 @@ bool GccBuilder::BuildPackage(const String& package, Vector& linkfile, V // else if(!HasFlag("WIN32")) // TRC 05/03/08: dynamic fPIC doesn't seem to work in MinGW // cc << " -dynamic -fPIC "; // TRC 05/03/30: dynamic fPIC doesn't seem to work in GCC either :-) cc << ' ' << Gather(pkg.option, config.GetKeys()); - cc << " -fexceptions "; + cc << " -fexceptions"; + if(pkg.nowarnings) + cc << " -w"; if (HasFlag("OSX11")) { if (HasFlag("POWERPC")) diff --git a/uppsrc/ide/Builders/MscBuilder.icpp b/uppsrc/ide/Builders/MscBuilder.icpp index b00b53936..3d28f30e7 100644 --- a/uppsrc/ide/Builders/MscBuilder.icpp +++ b/uppsrc/ide/Builders/MscBuilder.icpp @@ -98,7 +98,7 @@ String MscBuilder::CmdLine(const String& package, const Package& pkg) cc = HasFlag("INTEL") ? "icl" : "cl"; // TRC 080605-documentation says Wp64 works in 32-bit compilation only // cc << (IsMsc64() ? " -nologo -Wp64 -W3 -GR -c" : " -nologo -W3 -GR -c"); - cc << " -nologo -W3 -GR -c"; + cc << " -nologo -W" << (pkg.nowarnings ? "0" : "3") << " -GR -c"; cc << IncludesDefinesTargetTime(package, pkg); return cc; @@ -227,8 +227,7 @@ bool MscBuilder::BuildPackage(const String& package, Vector& linkfile, V if(opt == R_SPEED || pkg.optimize_speed) cc = cc_speed; } - - + Vector sfile, isfile; Vector soptions, isoptions; Vector optimize, ioptimize; diff --git a/uppsrc/ide/Core/Core.h b/uppsrc/ide/Core/Core.h index 2db390151..b08921ffb 100644 --- a/uppsrc/ide/Core/Core.h +++ b/uppsrc/ide/Core/Core.h @@ -299,6 +299,7 @@ public: byte charset; bool optimize_speed; bool noblitz; + bool nowarnings; String description; Vector accepts; Array flag; diff --git a/uppsrc/ide/Core/Package.cpp b/uppsrc/ide/Core/Package.cpp index 12da93bfb..2a953a68b 100644 --- a/uppsrc/ide/Core/Package.cpp +++ b/uppsrc/ide/Core/Package.cpp @@ -161,7 +161,7 @@ void Package::Reset() { charset = 0; optimize_speed = false; - noblitz = false; + noblitz = nowarnings = false; bold = italic = false; ink = Null; } @@ -347,6 +347,12 @@ bool Package::Load(const char *path) } p.Char(';'); } + for(int i = 0; i < option.GetCount(); i++) + if(option[i].when == "BUILDER_OPTION" && option[i].text == "NOWARNINGS") { + nowarnings = true; + option.Remove(i); + break; + } return true; } catch(CParser::Error error) { @@ -423,6 +429,8 @@ bool Package::Save(const char *path) const { out << "optimize_speed;\n\n"; if(noblitz) out << "noblitz;\n\n"; + if(nowarnings) + out << "options(BUILDER_OPTION) NOWARNINGS;\n\n"; putp(out, "acceptflags", accepts); putopt(out, "flags", flag); putopt(out, "uses", uses); @@ -449,12 +457,11 @@ bool Package::Save(const char *path) const { if(f.optimize_speed) out << " optimize_speed"; if(f.pch) -// out << " pch"; // good solution, but not backward compatible - out << " options PCH"; + out << " options(BUILDER_OPTION) PCH"; if(f.nopch) - out << " options NOPCH"; + out << " options(BUILDER_OPTION) NOPCH"; if(f.noblitz) - out << " options NOBLITZ"; + out << " options(BUILDER_OPTION) NOBLITZ"; if(f.charset > 0 && f.charset < CharsetCount() || f.charset == CHARSET_UTF8) out << " charset " << AsCString(CharsetName(f.charset)); else diff --git a/uppsrc/ide/UppDlg.cpp b/uppsrc/ide/UppDlg.cpp index f0a4e5b66..a8509d1f8 100644 --- a/uppsrc/ide/UppDlg.cpp +++ b/uppsrc/ide/UppDlg.cpp @@ -93,6 +93,7 @@ void PackageEditor::SaveOptions() { actual.accepts = Split(accepts.GetText().ToString(), ' '); actual.optimize_speed = optimize_speed; actual.noblitz = noblitz; + actual.nowarnings = nowarnings; if(IsActiveFile()) { Package::File& f = ActiveFile(); f.optimize_speed = optimize_speed_file; @@ -118,6 +119,7 @@ void PackageEditor::Empty() FileEmpty(); charset.Disable(); noblitz.Disable(); + nowarnings.Disable(); description.Disable(); ink.Disable(); italic.Disable(); @@ -179,6 +181,7 @@ void PackageEditor::PackageCursor() charset <<= (int)actual.charset; optimize_speed = actual.optimize_speed; noblitz = actual.noblitz; + nowarnings = actual.nowarnings; String s; for(int i = 0; i < actual.accepts.GetCount(); i++) { if(i) s << ' '; @@ -191,6 +194,7 @@ void PackageEditor::PackageCursor() italic.Enable(); charset.Enable(); noblitz.Enable(); + nowarnings.Enable(); optimize_speed.Enable(); accepts.Enable(); option.Enable(); @@ -592,6 +596,7 @@ PackageEditor::PackageEditor() accepts <<= charset <<= THISBACK(SaveOptions); noblitz <<= + nowarnings <<= optimize_speed <<= optimize_speed_file <<= pch_file <<= diff --git a/uppsrc/ide/ide.lay b/uppsrc/ide/ide.lay index df532089e..87b242da2 100644 --- a/uppsrc/ide/ide.lay +++ b/uppsrc/ide/ide.lay @@ -106,23 +106,24 @@ LAYOUT(FindFileLayout, 450, 280) ITEM(Button, cancel, SetLabel(t_("Cancel")).RightPosZ(4, 80).BottomPosZ(4, 22)) END_LAYOUT -LAYOUT(UppLayout, 848, 576) +LAYOUT(UppLayout, 936, 576) UNTYPED(package, LeftPosZ(4, 240).VSizePosZ(4, 196)) UNTYPED(filelist, LeftPosZ(4, 240).BottomPosZ(4, 188)) ITEM(Label, dv___2, SetLabel(t_("Description")).LeftPosZ(248, 64).TopPosZ(4, 19)) - ITEM(DataPusher, description, HSizePosZ(308, 212).TopPosZ(4, 20)) - ITEM(Label, dv___4, SetLabel(t_("Highlight")).RightPosZ(160, 48).TopPosZ(4, 19)) - ITEM(ColorPusher, ink, RightPosZ(108, 52).TopPosZ(4, 20)) - ITEM(Option, bold, SetLabel(t_("Bold")).RightPosZ(60, 44).TopPosZ(4, 20)) - ITEM(Option, italic, SetLabel(t_("Italic")).RightPosZ(12, 44).TopPosZ(4, 20)) + ITEM(DataPusher, description, HSizePosZ(308, 208).TopPosZ(4, 20)) + ITEM(Label, dv___4, SetLabel(t_("Highlight")).RightPosZ(152, 48).TopPosZ(4, 19)) + ITEM(ColorPusher, ink, RightPosZ(100, 52).TopPosZ(4, 20)) + ITEM(Option, bold, SetLabel(t_("Bold")).RightPosZ(52, 44).TopPosZ(4, 20)) + ITEM(Option, italic, SetLabel(t_("Italic")).RightPosZ(4, 44).TopPosZ(4, 20)) ITEM(Option, optimize_speed, SetLabel(t_("Optimize for speed")).LeftPosZ(248, 120).TopPosZ(28, 20)) - ITEM(Label, dv___9, SetLabel(t_("&Accepts")).HSizePosZ(368, 436).TopPosZ(28, 19)) - ITEM(EditString, accepts, HSizePosZ(412, 268).TopPosZ(28, 19)) - ITEM(Label, dv___11, SetLabel(t_("Encoding")).RightPosZ(212, 48).TopPosZ(28, 19)) - ITEM(DropList, charset, RightPosZ(96, 112).TopPosZ(28, 19)) - ITEM(Option, noblitz, SetLabel(t_("No BLITZ")).RightPosZ(10, 76).TopPosZ(28, 20)) - ITEM(ArrayCtrl, option, HSizePosZ(248, 8).VSizePosZ(52, 152)) - ITEM(ArrayCtrl, fileoption, HSizePosZ(248, 8).BottomPosZ(48, 100)) + ITEM(Label, dv___9, SetLabel(t_("&Accepts")).HSizePosZ(368, 524).TopPosZ(28, 19)) + ITEM(EditString, accepts, HSizePosZ(412, 356).TopPosZ(28, 19)) + ITEM(Label, dv___11, SetLabel(t_("Encoding")).RightPosZ(300, 48).TopPosZ(28, 19)) + ITEM(DropList, charset, RightPosZ(184, 112).TopPosZ(28, 19)) + ITEM(Option, noblitz, SetLabel(t_("No BLITZ")).RightPosZ(98, 76).TopPosZ(28, 20)) + ITEM(Option, nowarnings, SetLabel(t_("No warnings")).RightPosZ(4, 88).TopPosZ(28, 20)) + ITEM(ArrayCtrl, option, HSizePosZ(248, 4).VSizePosZ(52, 152)) + ITEM(ArrayCtrl, fileoption, HSizePosZ(248, 4).BottomPosZ(48, 100)) ITEM(Option, optimize_speed_file, SetLabel(t_("Optimize the file for speed")).LeftPosZ(248, 152).BottomPosZ(25, 19)) ITEM(Option, includeable_file, SetLabel(t_("Includeable group")).LeftPosZ(404, 116).BottomPosZ(25, 19)) ITEM(Option, pch_file, SetLabel(t_("Precompile header")).LeftPosZ(248, 120).BottomPosZ(5, 19)) @@ -219,7 +220,7 @@ LAYOUT(BuildMethodsLayout, 788, 560) ITEM(EditField, scriptfile, LeftPosZ(4, 152).BottomPosZ(113, 19)) ITEM(Option, use_target, SetLabel(t_("Store all target files\nin the same directory")).LeftPosZ(4, 148).BottomPosZ(74, 28)) ITEM(Button, setdefault, SetLabel(t_("&Set as default")).LeftPosZ(4, 152).BottomPosZ(40, 22)) - ITEM(TabCtrl, paths, HSizePosZ(160, 8).VSizePosZ(376, 40)) + ITEM(TabCtrl, paths, HSizePosZ(160, 8).VSizePosZ(380, 40)) ITEM(Button, ok, SetLabel(t_("OK")).RightPosZ(76, 64).BottomPosZ(10, 22)) ITEM(Button, cancel, SetLabel(t_("Cancel")).RightPosZ(8, 64).BottomPosZ(10, 22)) UNTYPED(allow_pch, LeftPosZ(160, 212).TopPosZ(356, 16)) diff --git a/uppsrc/plugin/jpg/jpg.upp b/uppsrc/plugin/jpg/jpg.upp index b20590d2e..fa90652ab 100644 --- a/uppsrc/plugin/jpg/jpg.upp +++ b/uppsrc/plugin/jpg/jpg.upp @@ -1,5 +1,7 @@ description "JPEG image file format\3770,128,128"; +options(BUILDER_OPTION) NOWARNINGS; + uses Draw; diff --git a/uppsrc/plugin/png/png.upp b/uppsrc/plugin/png/png.upp index 88179b2fd..402dfa7e1 100644 --- a/uppsrc/plugin/png/png.upp +++ b/uppsrc/plugin/png/png.upp @@ -1,5 +1,7 @@ description "PNG image file format U++ encapsulation\3770,128,128"; +options(BUILDER_OPTION) NOWARNINGS; + uses Core, Draw; diff --git a/uppsrc/plugin/z/z.upp b/uppsrc/plugin/z/z.upp index ea74ffd45..ed8474494 100644 --- a/uppsrc/plugin/z/z.upp +++ b/uppsrc/plugin/z/z.upp @@ -2,6 +2,8 @@ description "zlib compressor/decompressor and its U++ encapsulation\3770,128,128 optimize_speed; +options(BUILDER_OPTION) NOWARNINGS; + flags(NOTMFC) "!GUI !CONSOLE"; options(MSC8ARM) -DNO_ERRNO_H;