| Index: mojo/tools/mopy/config.py
|
| diff --git a/mojo/tools/mopy/config.py b/mojo/tools/mopy/config.py
|
| index 2ecb0cab745389ef63e5fbd53f8314a943f75896..37e0f6e643149ec79d8cc21614671d55fefa1c76 100644
|
| --- a/mojo/tools/mopy/config.py
|
| +++ b/mojo/tools/mopy/config.py
|
| @@ -26,27 +26,32 @@ class Config(object):
|
| build/test configuration. The dictionary is accessible through the values
|
| member."""
|
|
|
| - # Valid values for target_os:
|
| + # Valid values for target_os (None is also valid):
|
| OS_ANDROID = "android"
|
| OS_CHROMEOS = "chromeos"
|
| OS_LINUX = "linux"
|
| OS_MAC = "mac"
|
| OS_WINDOWS = "windows"
|
|
|
| - # TODO(vtl): Add clang vs gcc.
|
| - # TODO(vtl): Add ASan/TSan/etc.
|
| + # Valid values for sanitizer (None is also valid):
|
| + SANITIZER_ASAN = "asan"
|
|
|
| - def __init__(self, target_os=None, is_debug=True, **kwargs):
|
| + def __init__(self, target_os=None, is_debug=True, is_clang=None,
|
| + sanitizer=None, **kwargs):
|
| """Constructs a Config with key-value pairs specified via keyword arguments.
|
| If target_os is not specified, it will be set to the host OS."""
|
|
|
| assert target_os in (None, Config.OS_ANDROID, Config.OS_CHROMEOS,
|
| Config.OS_LINUX, Config.OS_MAC, Config.OS_WINDOWS)
|
| assert isinstance(is_debug, bool)
|
| + assert is_clang is None or isinstance(is_clang, bool)
|
| + assert sanitizer in (None, Config.SANITIZER_ASAN)
|
|
|
| self.values = {}
|
| self.values["target_os"] = _GetHostOS() if target_os is None else target_os
|
| self.values["is_debug"] = is_debug
|
| + self.values["is_clang"] = is_clang
|
| + self.values["sanitizer"] = sanitizer
|
|
|
| self.values.update(kwargs)
|
|
|
| @@ -60,4 +65,14 @@ class Config(object):
|
| @property
|
| def is_debug(self):
|
| """Is Debug build?"""
|
| - return self.values.get("is_debug")
|
| + return self.values["is_debug"]
|
| +
|
| + @property
|
| + def is_clang(self):
|
| + """Should use clang?"""
|
| + return self.values["is_clang"]
|
| +
|
| + @property
|
| + def sanitizer(self):
|
| + """Sanitizer to use, if any."""
|
| + return self.values["sanitizer"]
|
|
|