diff --git a/platformio/builder/tools/piolib.py b/platformio/builder/tools/piolib.py index 8c63934e..d5c58ff8 100644 --- a/platformio/builder/tools/piolib.py +++ b/platformio/builder/tools/piolib.py @@ -34,6 +34,7 @@ from platformio.builder.tools import platformio as piotool from platformio.compat import WINDOWS, hashlib_encode_data, string_types from platformio.managers.lib import LibraryManager from platformio.package.manifest.parser import ManifestParserFactory +from platformio.project.options import ProjectOptions class LibBuilderFactory(object): @@ -90,12 +91,6 @@ class LibBuilderFactory(object): class LibBuilderBase(object): - LDF_MODES = ["off", "chain", "deep", "chain+", "deep+"] - LDF_MODE_DEFAULT = "chain" - - COMPAT_MODES = ["off", "soft", "strict"] - COMPAT_MODE_DEFAULT = "soft" - CLASSIC_SCANNER = SCons.Scanner.C.CScanner() CCONDITIONAL_SCANNER = SCons.Scanner.C.CConditionalScanner() # Max depth of nested includes: @@ -215,35 +210,37 @@ class LibBuilderBase(object): @property def lib_ldf_mode(self): - return self.env.GetProjectOption("lib_ldf_mode", self.LDF_MODE_DEFAULT) + return self.env.GetProjectOption("lib_ldf_mode") @staticmethod def validate_ldf_mode(mode): + ldf_modes = ProjectOptions["env.lib_ldf_mode"].type.choices if isinstance(mode, string_types): mode = mode.strip().lower() - if mode in LibBuilderBase.LDF_MODES: + if mode in ldf_modes: return mode try: - return LibBuilderBase.LDF_MODES[int(mode)] + return ldf_modes[int(mode)] except (IndexError, ValueError): pass - return LibBuilderBase.LDF_MODE_DEFAULT + return ProjectOptions["env.lib_ldf_mode"].default @property def lib_compat_mode(self): - return self.env.GetProjectOption("lib_compat_mode", self.COMPAT_MODE_DEFAULT) + return self.env.GetProjectOption("lib_compat_mode") @staticmethod def validate_compat_mode(mode): + compat_modes = ProjectOptions["env.lib_compat_mode"].type.choices if isinstance(mode, string_types): mode = mode.strip().lower() - if mode in LibBuilderBase.COMPAT_MODES: + if mode in compat_modes: return mode try: - return LibBuilderBase.COMPAT_MODES[int(mode)] + return compat_modes[int(mode)] except (IndexError, ValueError): pass - return LibBuilderBase.COMPAT_MODE_DEFAULT + return ProjectOptions["env.lib_compat_mode"].default def is_platforms_compatible(self, platforms): return True diff --git a/platformio/commands/check/command.py b/platformio/commands/check/command.py index cb155e8a..0d0b6f27 100644 --- a/platformio/commands/check/command.py +++ b/platformio/commands/check/command.py @@ -117,10 +117,10 @@ def cli( flags=flags or env_options.get("check_flags"), severity=[DefectItem.SEVERITY_LABELS[DefectItem.SEVERITY_HIGH]] if silent - else (severity or env_options.get("check_severity")), + else severity or config.get("env:" + envname, "check_severity"), ) - for tool in env_options.get("check_tool", ["cppcheck"]): + for tool in config.get("env:" + envname, "check_tool"): if skipenv: results.append({"env": envname, "tool": tool}) continue diff --git a/platformio/commands/debug/helpers.py b/platformio/commands/debug/helpers.py index 858be66b..a3058776 100644 --- a/platformio/commands/debug/helpers.py +++ b/platformio/commands/debug/helpers.py @@ -139,15 +139,11 @@ def validate_debug_options(cmd_ctx, env_options): load_cmds=_cleanup_cmds( env_options.get( "debug_load_cmds", - tool_settings.get("load_cmds", tool_settings.get("load_cmd", "load")), + tool_settings.get("load_cmds", tool_settings.get("load_cmd")), ) ), - load_mode=env_options.get( - "debug_load_mode", tool_settings.get("load_mode", "always") - ), - init_break=env_options.get( - "debug_init_break", tool_settings.get("init_break", "tbreak main") - ), + load_mode=env_options.get("debug_load_mode", tool_settings.get("load_mode")), + init_break=env_options.get("debug_init_break", tool_settings.get("init_break")), init_cmds=_cleanup_cmds( env_options.get("debug_init_cmds", tool_settings.get("init_cmds")) ),