forked from platformio/platformio-core
Compare commits
54 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6db47cec2b | ||
|
|
6f8b9d70bc | ||
|
|
d8cbe99f2c | ||
|
|
a690b8c085 | ||
|
|
b874359482 | ||
|
|
3a18e668c2 | ||
|
|
3ca9527da4 | ||
|
|
f539513376 | ||
|
|
afdfaeec68 | ||
|
|
676c87d081 | ||
|
|
db3b0499c9 | ||
|
|
98032ec548 | ||
|
|
8ef6ea8053 | ||
|
|
d87ee0b286 | ||
|
|
6f01f10f59 | ||
|
|
59a0d2b618 | ||
|
|
16df5474e4 | ||
|
|
33ea6ef123 | ||
|
|
a485e563f0 | ||
|
|
cf35f9dbf8 | ||
|
|
710b150fcd | ||
|
|
13731b4461 | ||
|
|
3d52710935 | ||
|
|
d475f44e49 | ||
|
|
7574798a3a | ||
|
|
9ef8d4cfe0 | ||
|
|
b42d0efa73 | ||
|
|
4a17a9b5b3 | ||
|
|
d3909bdfa2 | ||
|
|
a2b0b2893b | ||
|
|
9d2499ab98 | ||
|
|
579a973512 | ||
|
|
b861e9c192 | ||
|
|
375006ee65 | ||
|
|
23af9c9027 | ||
|
|
7322df26ad | ||
|
|
32bb9c9d83 | ||
|
|
b22ca10f8c | ||
|
|
95beb03aad | ||
|
|
f65ab58c88 | ||
|
|
c06a018d88 | ||
|
|
7789e3bc62 | ||
|
|
1287e51bf8 | ||
|
|
151823f80e | ||
|
|
09d58d0d49 | ||
|
|
0a6fb68840 | ||
|
|
38fb5b2234 | ||
|
|
ab6a323aca | ||
|
|
50ed828e7a | ||
|
|
692af90161 | ||
|
|
543a1dddae | ||
|
|
fce84b5a48 | ||
|
|
67a6f66a35 | ||
|
|
fdbebb178c |
21
HISTORY.rst
21
HISTORY.rst
@@ -4,6 +4,27 @@ Release Notes
|
||||
PlatformIO 3.0
|
||||
--------------
|
||||
|
||||
3.6.3 (2018-12-12)
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
||||
* Ignore *.asm and *.ASM files when building Arduino-based library (compatibility with Arduino builder)
|
||||
* Fixed spurious project's "Problems" for `PlatformIO IDE for VSCode <http://docs.platformio.org/page/ide/vscode.html>`__ when ARM mbed framework is used
|
||||
* Fixed an issue with a broken headers list when generating ".clang_complete" for `Emacs <http://docs.platformio.org/page/ide/emacs.html>`__
|
||||
(`issue #1960 <https://github.com/platformio/platformio-core/issues/1960>`_)
|
||||
|
||||
3.6.2 (2018-11-29)
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
||||
* Improved IntelliSense for `PlatformIO IDE for VSCode <http://docs.platformio.org/page/ide/vscode.html>`__ via passing extra compiler information for C/C++ Code Parser (resolves issues with spurious project's "Problems")
|
||||
* Fixed an issue with VSCode IntelliSense warning about the missed headers located in `include <http://docs.platformio.org/page/projectconf/section_platformio.html#include-dir>`__ folder
|
||||
* Fixed incorrect wording when initializing/updating project
|
||||
* Fixed an issue with incorrect order for library dependencies ``CPPPATH``
|
||||
(`issue #1914 <https://github.com/platformio/platformio-core/issues/1914>`_)
|
||||
* Fixed an issue when Library Dependency Finder (LDF) does not handle project `src_filter <http://docs.platformio.org/page/projectconf/section_env_build.html#src-filter>`__
|
||||
(`issue #1905 <https://github.com/platformio/platformio-core/issues/1905>`_)
|
||||
* Fixed an issue when Library Dependency Finder (LDF) finds spurious dependencies in ``chain+`` and ``deep+`` modes
|
||||
(`issue #1930 <https://github.com/platformio/platformio-core/issues/1930>`_)
|
||||
|
||||
3.6.1 (2018-10-29)
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
||||
|
||||
2
docs
2
docs
Submodule docs updated: 30c88f6247...c0dc83570a
@@ -14,7 +14,7 @@
|
||||
|
||||
import sys
|
||||
|
||||
VERSION = (3, 6, 1)
|
||||
VERSION = (3, 6, 3)
|
||||
__version__ = ".".join([str(s) for s in VERSION])
|
||||
|
||||
__title__ = "platformio"
|
||||
|
||||
@@ -122,7 +122,7 @@ class State(object):
|
||||
raise exception.HomeDirPermissionsError(dirname(self.path))
|
||||
|
||||
def _unlock_state_file(self):
|
||||
if self._lockfile:
|
||||
if hasattr(self, "_lockfile") and self._lockfile:
|
||||
self._lockfile.release()
|
||||
|
||||
def __del__(self):
|
||||
|
||||
@@ -25,7 +25,7 @@ from platformio.managers.core import get_core_package_dir
|
||||
|
||||
|
||||
def _dump_includes(env):
|
||||
includes = [env.subst("$PROJECTINCLUDE_DIR"), env.subst("$PROJECTSRC_DIR")]
|
||||
includes = []
|
||||
|
||||
for item in env.get("CPPPATH", []):
|
||||
includes.append(env.subst(item))
|
||||
@@ -53,6 +53,10 @@ def _dump_includes(env):
|
||||
if unity_dir:
|
||||
includes.append(unity_dir)
|
||||
|
||||
includes.extend(
|
||||
[env.subst("$PROJECTINCLUDE_DIR"),
|
||||
env.subst("$PROJECTSRC_DIR")])
|
||||
|
||||
# remove duplicates
|
||||
result = []
|
||||
for item in includes:
|
||||
@@ -130,8 +134,8 @@ def _get_svd_path(env):
|
||||
|
||||
|
||||
def DumpIDEData(env):
|
||||
LINTCCOM = "$CFLAGS $CCFLAGS $CPPFLAGS $_CPPDEFFLAGS"
|
||||
LINTCXXCOM = "$CXXFLAGS $CCFLAGS $CPPFLAGS $_CPPDEFFLAGS"
|
||||
LINTCCOM = "$CFLAGS $CCFLAGS $CPPFLAGS"
|
||||
LINTCXXCOM = "$CXXFLAGS $CCFLAGS $CPPFLAGS"
|
||||
|
||||
data = {
|
||||
"libsource_dirs":
|
||||
|
||||
@@ -347,7 +347,7 @@ class LibBuilderBase(object):
|
||||
for path in self._validate_search_files(search_files):
|
||||
try:
|
||||
assert "+" in self.lib_ldf_mode
|
||||
incs = LibBuilderBase.CCONDITIONAL_SCANNER(
|
||||
candidates = LibBuilderBase.CCONDITIONAL_SCANNER(
|
||||
self.env.File(path),
|
||||
self.env,
|
||||
tuple(include_dirs),
|
||||
@@ -357,26 +357,26 @@ class LibBuilderBase(object):
|
||||
sys.stderr.write(
|
||||
"Warning! Classic Pre Processor is used for `%s`, "
|
||||
"advanced has failed with `%s`\n" % (path, e))
|
||||
_incs = LibBuilderBase.CLASSIC_SCANNER(
|
||||
candidates = LibBuilderBase.CLASSIC_SCANNER(
|
||||
self.env.File(path), self.env, tuple(include_dirs))
|
||||
incs = []
|
||||
for inc in _incs:
|
||||
incs.append(inc)
|
||||
if not self.PARSE_SRC_BY_H_NAME:
|
||||
|
||||
# print(path, map(lambda n: n.get_abspath(), candidates))
|
||||
for item in candidates:
|
||||
if item not in result:
|
||||
result.append(item)
|
||||
if not self.PARSE_SRC_BY_H_NAME:
|
||||
continue
|
||||
_h_path = item.get_abspath()
|
||||
if not self.env.IsFileWithExt(_h_path, piotool.SRC_HEADER_EXT):
|
||||
continue
|
||||
_f_part = _h_path[:_h_path.rindex(".")]
|
||||
for ext in piotool.SRC_C_EXT:
|
||||
if not isfile("%s.%s" % (_f_part, ext)):
|
||||
continue
|
||||
_h_path = inc.get_abspath()
|
||||
if not self.env.IsFileWithExt(_h_path,
|
||||
piotool.SRC_HEADER_EXT):
|
||||
continue
|
||||
_f_part = _h_path[:_h_path.rindex(".")]
|
||||
for ext in piotool.SRC_C_EXT:
|
||||
if isfile("%s.%s" % (_f_part, ext)):
|
||||
incs.append(
|
||||
self.env.File("%s.%s" % (_f_part, ext)))
|
||||
# print(path, map(lambda n: n.get_abspath(), incs))
|
||||
for inc in incs:
|
||||
if inc not in result:
|
||||
result.append(inc)
|
||||
_c_path = self.env.File("%s.%s" % (_f_part, ext))
|
||||
if _c_path not in result:
|
||||
result.append(_c_path)
|
||||
|
||||
return result
|
||||
|
||||
def depend_recursive(self, lb, search_files=None):
|
||||
@@ -432,23 +432,23 @@ class LibBuilderBase(object):
|
||||
libs.extend(lb.build())
|
||||
# copy shared information to self env
|
||||
for key in ("CPPPATH", "LIBPATH", "LIBS", "LINKFLAGS"):
|
||||
self.env.AppendUnique(**{key: lb.env.get(key)})
|
||||
self.env.PrependUnique(**{key: lb.env.get(key)})
|
||||
|
||||
for lb in self._circular_deps:
|
||||
self.env.AppendUnique(CPPPATH=lb.get_include_dirs())
|
||||
self.env.PrependUnique(CPPPATH=lb.get_include_dirs())
|
||||
|
||||
if self._is_built:
|
||||
return libs
|
||||
self._is_built = True
|
||||
|
||||
self.env.AppendUnique(CPPPATH=self.get_include_dirs())
|
||||
self.env.PrependUnique(CPPPATH=self.get_include_dirs())
|
||||
|
||||
if self.lib_ldf_mode == "off":
|
||||
for lb in self.env.GetLibBuilders():
|
||||
if self == lb or not lb.is_built:
|
||||
continue
|
||||
for key in ("CPPPATH", "LIBPATH", "LIBS", "LINKFLAGS"):
|
||||
self.env.AppendUnique(**{key: lb.env.get(key)})
|
||||
self.env.PrependUnique(**{key: lb.env.get(key)})
|
||||
|
||||
if self.lib_archive:
|
||||
libs.append(
|
||||
@@ -488,11 +488,29 @@ class ArduinoLibBuilder(LibBuilderBase):
|
||||
|
||||
@property
|
||||
def src_filter(self):
|
||||
if isdir(join(self.path, "src")):
|
||||
return LibBuilderBase.src_filter.fget(self)
|
||||
src_dir = join(self.path, "src")
|
||||
if isdir(src_dir):
|
||||
src_filter = LibBuilderBase.src_filter.fget(self)
|
||||
for root, _, files in os.walk(src_dir, followlinks=True):
|
||||
found = False
|
||||
for fname in files:
|
||||
if fname.lower().endswith("asm"):
|
||||
found = True
|
||||
break
|
||||
if not found:
|
||||
continue
|
||||
rel_path = root.replace(src_dir, "")
|
||||
if rel_path.startswith(sep):
|
||||
rel_path = rel_path[1:] + sep
|
||||
src_filter.append("-<%s*.[aA][sS][mM]>" % rel_path)
|
||||
return src_filter
|
||||
|
||||
src_filter = []
|
||||
is_utility = isdir(join(self.path, "utility"))
|
||||
for ext in piotool.SRC_BUILD_EXT + piotool.SRC_HEADER_EXT:
|
||||
# arduino ide ignores files with .asm or .ASM extensions
|
||||
if ext.lower() == "asm":
|
||||
continue
|
||||
src_filter.append("+<*.%s>" % ext)
|
||||
if is_utility:
|
||||
src_filter.append("+<utility%s*.%s>" % (sep, ext))
|
||||
@@ -663,6 +681,12 @@ class PlatformIOLibBuilder(LibBuilderBase):
|
||||
|
||||
class ProjectAsLibBuilder(LibBuilderBase):
|
||||
|
||||
def __init__(self, env, *args, **kwargs):
|
||||
# backup original value, will be reset in base.__init__
|
||||
project_src_filter = env.get("SRC_FILTER")
|
||||
super(ProjectAsLibBuilder, self).__init__(env, *args, **kwargs)
|
||||
self.env['SRC_FILTER'] = project_src_filter
|
||||
|
||||
@property
|
||||
def include_dir(self):
|
||||
include_dir = self.env.subst("$PROJECTINCLUDE_DIR")
|
||||
@@ -701,7 +725,8 @@ class ProjectAsLibBuilder(LibBuilderBase):
|
||||
|
||||
@property
|
||||
def src_filter(self):
|
||||
return self.env.get("SRC_FILTER", LibBuilderBase.src_filter.fget(self))
|
||||
return (self.env.get("SRC_FILTER")
|
||||
or LibBuilderBase.src_filter.fget(self))
|
||||
|
||||
def process_extra_options(self):
|
||||
# skip for project, options are already processed
|
||||
@@ -743,7 +768,7 @@ class ProjectAsLibBuilder(LibBuilderBase):
|
||||
|
||||
def build(self):
|
||||
self._is_built = True # do not build Project now
|
||||
self.env.AppendUnique(CPPPATH=self.get_include_dirs())
|
||||
self.env.PrependUnique(CPPPATH=self.get_include_dirs())
|
||||
return LibBuilderBase.build(self)
|
||||
|
||||
|
||||
|
||||
@@ -124,15 +124,15 @@ def LoadPioPlatform(env, variables):
|
||||
def PrintConfiguration(env):
|
||||
platform = env.PioPlatform()
|
||||
platform_data = ["PLATFORM: %s >" % platform.title]
|
||||
system_data = ["SYSTEM:"]
|
||||
hardware_data = ["HARDWARE:"]
|
||||
configuration_data = ["CONFIGURATION:"]
|
||||
mcu = env.subst("$BOARD_MCU")
|
||||
f_cpu = env.subst("$BOARD_F_CPU")
|
||||
if mcu:
|
||||
system_data.append(mcu.upper())
|
||||
hardware_data.append(mcu.upper())
|
||||
if f_cpu:
|
||||
f_cpu = int("".join([c for c in str(f_cpu) if c.isdigit()]))
|
||||
system_data.append("%dMHz" % (f_cpu / 1000000))
|
||||
hardware_data.append("%dMHz" % (f_cpu / 1000000))
|
||||
|
||||
debug_tools = None
|
||||
if "BOARD" in env:
|
||||
@@ -142,13 +142,14 @@ def PrintConfiguration(env):
|
||||
debug_tools = board_config.get("debug", {}).get("tools")
|
||||
ram = board_config.get("upload", {}).get("maximum_ram_size")
|
||||
flash = board_config.get("upload", {}).get("maximum_size")
|
||||
system_data.append("%s RAM (%s Flash)" % (util.format_filesize(ram),
|
||||
util.format_filesize(flash)))
|
||||
hardware_data.append(
|
||||
"%s RAM (%s Flash)" % (util.format_filesize(ram),
|
||||
util.format_filesize(flash)))
|
||||
configuration_data.append(
|
||||
"https://docs.platformio.org/page/boards/%s/%s.html" %
|
||||
(platform.name, board_config.id))
|
||||
|
||||
for data in (configuration_data, platform_data, system_data):
|
||||
for data in (configuration_data, platform_data, hardware_data):
|
||||
if len(data) > 1:
|
||||
print(" ".join(data))
|
||||
|
||||
|
||||
@@ -44,10 +44,10 @@ def scons_patched_match_splitext(path, suffixes=None):
|
||||
def _build_project_deps(env):
|
||||
project_lib_builder = env.ConfigureProjectLibBuilder()
|
||||
|
||||
# append project libs to the beginning of list
|
||||
# prepend project libs to the beginning of list
|
||||
env.Prepend(LIBS=project_lib_builder.build())
|
||||
# append extra linker related options from libs
|
||||
env.AppendUnique(
|
||||
# prepend extra linker related options from libs
|
||||
env.PrependUnique(
|
||||
**{
|
||||
key: project_lib_builder.env.get(key)
|
||||
for key in ("LIBS", "LIBPATH", "LINKFLAGS")
|
||||
|
||||
@@ -87,7 +87,7 @@ def cli(
|
||||
click.echo("%s - Project Configuration File" % click.style(
|
||||
"platformio.ini", fg="cyan"))
|
||||
|
||||
is_new_project = util.is_platformio_project(project_dir)
|
||||
is_new_project = not util.is_platformio_project(project_dir)
|
||||
init_base_project(project_dir)
|
||||
|
||||
if board:
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
% _defines = " ".join(["-D%s" % d for d in defines])
|
||||
{
|
||||
"execPath": "{{ cxx_path.replace("\\", "/") }}",
|
||||
"gccDefaultCFlags": "-fsyntax-only {{! cc_flags.replace(' -MMD ', ' ').replace('"', '\\"') }}",
|
||||
"gccDefaultCppFlags": "-fsyntax-only {{! cxx_flags.replace(' -MMD ', ' ').replace('"', '\\"') }}",
|
||||
"gccDefaultCFlags": "-fsyntax-only {{! cc_flags.replace(' -MMD ', ' ').replace('"', '\\"') }} {{ !_defines.replace('"', '\\"') }}",
|
||||
"gccDefaultCppFlags": "-fsyntax-only {{! cxx_flags.replace(' -MMD ', ' ').replace('"', '\\"') }} {{ !_defines.replace('"', '\\"') }}",
|
||||
"gccErrorLimit": 15,
|
||||
"gccIncludePaths": "{{ ','.join(includes).replace("\\", "/") }}",
|
||||
"gccSuppressWarnings": false
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
% for include in includes:
|
||||
-I"{{include}}"
|
||||
-I{{include}}
|
||||
% end
|
||||
% for define in defines:
|
||||
-D{{!define}}
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
% _defines = " ".join(["-D%s" % d for d in defines])
|
||||
{
|
||||
"execPath": "{{ cxx_path.replace("\\", "/") }}",
|
||||
"gccDefaultCFlags": "-fsyntax-only {{! cc_flags.replace(' -MMD ', ' ').replace('"', '\\"') }}",
|
||||
"gccDefaultCppFlags": "-fsyntax-only {{! cxx_flags.replace(' -MMD ', ' ').replace('"', '\\"') }}",
|
||||
"gccDefaultCFlags": "-fsyntax-only {{! cc_flags.replace(' -MMD ', ' ').replace('"', '\\"') }} {{ !_defines.replace('"', '\\"') }}",
|
||||
"gccDefaultCppFlags": "-fsyntax-only {{! cxx_flags.replace(' -MMD ', ' ').replace('"', '\\"') }} {{ !_defines.replace('"', '\\"') }}",
|
||||
"gccErrorLimit": 15,
|
||||
"gccIncludePaths": "{{! ','.join("'{}'".format(w.replace("\\", '/')) for w in includes)}}",
|
||||
"gccSuppressWarnings": false
|
||||
|
||||
@@ -7,10 +7,14 @@
|
||||
%
|
||||
% systype = platform.system().lower()
|
||||
%
|
||||
% def _escape(text):
|
||||
% return text.replace('\\\\', '/').replace('\\', '/').replace('"', '\\"')
|
||||
% end
|
||||
%
|
||||
% cleaned_includes = []
|
||||
% for include in includes:
|
||||
% if "toolchain-" not in dirname(commonprefix([include, cc_path])):
|
||||
% cleaned_includes.append(include)
|
||||
% cleaned_includes.append(include)
|
||||
% end
|
||||
% end
|
||||
%
|
||||
@@ -24,7 +28,7 @@
|
||||
% end
|
||||
"includePath": [
|
||||
% for include in cleaned_includes:
|
||||
"{{include.replace('\\\\', '/').replace('\\', '/').replace('"', '\\"')}}",
|
||||
"{{! _escape(include) }}",
|
||||
% end
|
||||
""
|
||||
],
|
||||
@@ -33,14 +37,14 @@
|
||||
"databaseFilename": "${workspaceRoot}/.vscode/.browse.c_cpp.db",
|
||||
"path": [
|
||||
% for include in cleaned_includes:
|
||||
"{{include.replace('\\\\', '/').replace('\\', '/').replace('"', '\\"')}}",
|
||||
"{{! _escape(include) }}",
|
||||
% end
|
||||
""
|
||||
]
|
||||
},
|
||||
"defines": [
|
||||
% for define in defines:
|
||||
"{{!define.replace('"', '\\"')}}",
|
||||
"{{! _escape(define) }}",
|
||||
% end
|
||||
""
|
||||
],
|
||||
@@ -50,13 +54,16 @@
|
||||
% cc_stds = STD_RE.findall(cc_flags)
|
||||
% cxx_stds = STD_RE.findall(cxx_flags)
|
||||
%
|
||||
% # pass only architecture specific flags
|
||||
% cc_m_flags = " ".join([f.strip() for f in cc_flags.split(" ") if f.strip().startswith("-m")])
|
||||
%
|
||||
% if cc_stds:
|
||||
"cStandard": "c{{ cc_stds[-1] }}",
|
||||
% end
|
||||
% if cxx_stds:
|
||||
"cppStandard": "c++{{ cxx_stds[-1] }}",
|
||||
% end
|
||||
"compilerPath": "{{ cc_path.replace('\\\\', '/').replace('\\', '/').replace('"', '\\"') }}"
|
||||
"compilerPath": "{{! _escape(cc_path) }} {{! _escape(cc_m_flags) }}"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -66,11 +66,12 @@ def on_platformio_exception(e):
|
||||
|
||||
def in_silence(ctx=None):
|
||||
ctx = ctx or app.get_session_var("command_ctx")
|
||||
assert ctx
|
||||
ctx_args = ctx.args or []
|
||||
return ctx_args and any([
|
||||
ctx.args[0] == "upgrade", "--json-output" in ctx_args,
|
||||
"--version" in ctx_args
|
||||
if not ctx:
|
||||
return True
|
||||
return ctx.args and any([
|
||||
ctx.args[0] == "debug" and "--interpreter" in " ".join(ctx.args),
|
||||
ctx.args[0] == "upgrade", "--json-output" in ctx.args,
|
||||
"--version" in ctx.args
|
||||
])
|
||||
|
||||
|
||||
|
||||
@@ -24,11 +24,11 @@ from platformio import __version__, exception, util
|
||||
from platformio.managers.package import PackageManager
|
||||
|
||||
CORE_PACKAGES = {
|
||||
"contrib-piohome": "^1.0.2",
|
||||
"contrib-pysite": ">=0.3.2,<2",
|
||||
"tool-pioplus": "^1.5.0",
|
||||
"contrib-piohome": "^2.0.0",
|
||||
"contrib-pysite": "~2.%d%d.0" % (sys.version_info[0], sys.version_info[1]),
|
||||
"tool-pioplus": "^2.0.0",
|
||||
"tool-unity": "~1.20403.0",
|
||||
"tool-scons": "~2.20501.4"
|
||||
"tool-scons": "~2.20501.7"
|
||||
}
|
||||
|
||||
PIOPLUS_AUTO_UPDATES_MAX = 100
|
||||
@@ -106,12 +106,12 @@ def update_core_packages(only_check=False, silent=False):
|
||||
|
||||
def shutdown_piohome_servers():
|
||||
port = 8010
|
||||
while port < 9000:
|
||||
while port < 8100:
|
||||
try:
|
||||
requests.get("http://127.0.0.1:%d?__shutdown__=1" % port)
|
||||
port += 1
|
||||
except: # pylint: disable=bare-except
|
||||
return
|
||||
pass
|
||||
port += 1
|
||||
|
||||
|
||||
def pioplus_call(args, **kwargs):
|
||||
|
||||
@@ -460,8 +460,7 @@ class PlatformBase( # pylint: disable=too-many-public-methods
|
||||
self._manifest = util.load_json(manifest_path)
|
||||
|
||||
self.pm = PackageManager(
|
||||
join(util.get_home_dir(), "packages"),
|
||||
self._manifest.get("packageRepositories"))
|
||||
join(util.get_home_dir(), "packages"), self.package_repositories)
|
||||
|
||||
self.silent = False
|
||||
self.verbose = False
|
||||
@@ -516,6 +515,10 @@ class PlatformBase( # pylint: disable=too-many-public-methods
|
||||
def engines(self):
|
||||
return self._manifest.get("engines")
|
||||
|
||||
@property
|
||||
def package_repositories(self):
|
||||
return self._manifest.get("packageRepositories")
|
||||
|
||||
@property
|
||||
def manifest(self):
|
||||
return self._manifest
|
||||
|
||||
@@ -628,8 +628,8 @@ def update_embedded_board(rst_path, board):
|
||||
lines.append("""
|
||||
.. contents::
|
||||
|
||||
System
|
||||
------
|
||||
Hardware
|
||||
--------
|
||||
|
||||
Platform :ref:`platform_{platform}`: {platform_description}
|
||||
|
||||
@@ -822,7 +822,7 @@ Boards
|
||||
# Debug tools
|
||||
for tool, platforms in tool_to_platforms.items():
|
||||
tool_path = join(DOCS_ROOT_DIR, "plus", "debug-tools", "%s.rst" % tool)
|
||||
assert isfile(tool_path)
|
||||
assert isfile(tool_path), tool
|
||||
platforms = sorted(set(platforms))
|
||||
|
||||
lines = [".. begin_platforms"]
|
||||
|
||||
Reference in New Issue
Block a user