diff --git a/HISTORY.rst b/HISTORY.rst index df2da41f..f635db39 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -28,6 +28,7 @@ PlatformIO Core 4.0 * Fixed an issue with linking process when ``$LDSCRIPT`` contains a space in path * Fixed security issue when extracting items from TAR archive (`issue #2995 `_) * Fixed an issue with project generator when ``src_build_flags`` were not respected (`issue #3137 `_) +* Fixed an issue when booleans in "platformio.ini" are not parsed properly (`issue #3022 `_) 4.0.3 (2019-08-30) ~~~~~~~~~~~~~~~~~~ diff --git a/docs b/docs index 1f833f57..46b1dee7 160000 --- a/docs +++ b/docs @@ -1 +1 @@ -Subproject commit 1f833f57255b09222abd052067612cdd941be4db +Subproject commit 46b1dee7f1426eeedd9f16aaef7dcddffdd51b37 diff --git a/platformio/builder/tools/pioplatform.py b/platformio/builder/tools/pioplatform.py index 9571ea75..a2b7679f 100644 --- a/platformio/builder/tools/pioplatform.py +++ b/platformio/builder/tools/pioplatform.py @@ -93,8 +93,14 @@ def LoadPioPlatform(env): # update board manifest with overridden data from INI config board_config = env.BoardConfig() for option, value in env.GetProjectOptions(): - if option.startswith("board_"): - board_config.update(option.lower()[6:], value) + if not option.startswith("board_"): + continue + option = option.lower()[6:] + if isinstance(board_config.get(option), bool): + value = str(value).lower() in ("1", "yes", "true") + elif isinstance(board_config.get(option), int): + value = int(value) + board_config.update(option, value) # load default variables from board config for option_meta in ProjectOptions.values():