diff options
Diffstat (limited to 'include/Conf.hpp')
-rw-r--r-- | include/Conf.hpp | 29 |
1 files changed, 24 insertions, 5 deletions
diff --git a/include/Conf.hpp b/include/Conf.hpp index a93b44f..13fadcf 100644 --- a/include/Conf.hpp +++ b/include/Conf.hpp @@ -16,6 +16,13 @@ namespace sibs { + enum CPU + { + CPU_INVALID, + CPU_BASELINE, + CPU_NATIVE + }; + class ConfigValue { public: @@ -116,14 +123,18 @@ namespace sibs { C89, // aka ansi C99, - C11 + C11, + C20 }; enum class CPPVersion { + CPP03, + CPP98, CPP11, CPP14, - CPP17 + CPP17, + CPP20 }; enum class Language @@ -227,6 +238,7 @@ namespace sibs sanitize(Sanitize::NONE), showWarnings(false), errorOnWarning(false), + enableExceptions(true), zigTestAllFiles(false), packaging(false), bundling(false), @@ -420,18 +432,27 @@ namespace sibs std::vector<FileString> zigTestFiles; bool showWarnings; bool errorOnWarning; + bool enableExceptions; bool zigTestAllFiles; bool packaging; bool bundling; std::string versionStr; PackageVersion version; Platform platform; + CPU cpu = CPU_NATIVE; bool use_lto; bool include_debug_symbols_in_release; std::vector<std::string> includeDirs; std::vector<std::string> exposeIncludeDirs; std::vector<std::string> ignoreDirs; std::vector<std::string> libs; + + CVersion cVersion; + CPPVersion cppVersion; + std::string linker; + bool testsBuildOnly = false; + bool skipCompile = false; + std::vector<FileString> testRunArgs; protected: virtual void processObject(StringView name) override; virtual void processField(StringView name, const ConfigValue &value) override; @@ -440,9 +461,9 @@ namespace sibs virtual void finished() override; void failInvalidFieldUnderObject(const StringView &fieldName) const; void validatePackageTypeDefined() const; - private: void parseCLang(const StringView &fieldName, const ConfigValue &fieldValue); void parseCppLang(const StringView &fieldName, const ConfigValue &fieldValue); + private: void parsePlatformConfig(const StringView &fieldName, const ConfigValue &fieldValue); std::string parsePlatformConfigStatic(const StringView &fieldName, const ConfigValue &fieldValue); void parsePlatformConfigStaticDebug(const StringView &fieldName, const ConfigValue &fieldValue); @@ -468,8 +489,6 @@ namespace sibs std::vector<FileString> cmakeArgsGlobal; std::vector<FileString> cmakeArgsStatic; std::vector<FileString> cmakeArgsDynamic; - CVersion cVersion; - CPPVersion cppVersion; bool useCmake; bool buildTests; bool finishedProcessing; |