From 445fd7c1968112664b1fbbe6215ed76609cfb8ac Mon Sep 17 00:00:00 2001 From: dec05eba Date: Thu, 21 Oct 2021 11:06:17 +0200 Subject: Add lang.cpp.enable_exceptions option to enable/disable options, add c20, add c++03, c++98 and c++20 --- backend/ninja/Ninja.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'backend/ninja/Ninja.cpp') diff --git a/backend/ninja/Ninja.cpp b/backend/ninja/Ninja.cpp index f4beeb8..456eb27 100644 --- a/backend/ninja/Ninja.cpp +++ b/backend/ninja/Ninja.cpp @@ -122,6 +122,7 @@ namespace backend case CVersion::C89: return { ninja::NinjaArg("-std=c89"), ninja::NinjaArg("-pedantic") }; case CVersion::C99: return { ninja::NinjaArg("-std=c99"), ninja::NinjaArg("-pedantic") }; case CVersion::C11: return { ninja::NinjaArg("-std=c11"), ninja::NinjaArg("-pedantic") }; + case CVersion::C20: return { ninja::NinjaArg("-std=c20"), ninja::NinjaArg("-pedantic") }; } break; } @@ -147,9 +148,12 @@ namespace backend { switch(cppVersion) { + case CPPVersion::CPP03: return { ninja::NinjaArg("-std=c++03"), ninja::NinjaArg("-pedantic") }; + case CPPVersion::CPP98: return { ninja::NinjaArg("-std=c++98"), ninja::NinjaArg("-pedantic") }; case CPPVersion::CPP11: return { ninja::NinjaArg("-std=c++11"), ninja::NinjaArg("-pedantic") }; case CPPVersion::CPP14: return { ninja::NinjaArg("-std=c++14"), ninja::NinjaArg("-pedantic") }; case CPPVersion::CPP17: return { ninja::NinjaArg("-std=c++17"), ninja::NinjaArg("-pedantic") }; + case CPPVersion::CPP20: return { ninja::NinjaArg("-std=c++20"), ninja::NinjaArg("-pedantic") }; } break; } @@ -158,9 +162,12 @@ namespace backend switch(cppVersion) { // Use /Za flag? + case CPPVersion::CPP03: return { ninja::NinjaArg("/std:c++03") }; + case CPPVersion::CPP98: return { ninja::NinjaArg("/std:c++98") }; case CPPVersion::CPP11: return { ninja::NinjaArg("/std:c++11") }; case CPPVersion::CPP14: return { ninja::NinjaArg("/std:c++14") }; case CPPVersion::CPP17: return { ninja::NinjaArg("/std:c++17") }; + case CPPVersion::CPP20: return { ninja::NinjaArg("/std:c++20") }; } break; } @@ -1006,7 +1013,7 @@ namespace backend compileCppCommand = compileCCommand; compileCppCommand.insert(compileCppCommand.end(), { - ninja::NinjaArg("-fexceptions"), + ninja::NinjaArg(config.enableExceptions ? "-fexceptions" : "-fno-exceptions"), ninja::NinjaArg("-Wnon-virtual-dtor") }); -- cgit v1.2.3