aboutsummaryrefslogtreecommitdiff
path: root/include/Conf.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'include/Conf.hpp')
-rw-r--r--include/Conf.hpp29
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;