mirror of
https://github.com/platformio/platformio-core.git
synced 2025-07-31 10:37:13 +02:00
Packaging: exclude extras from Arduino libraries
This commit is contained in:
@ -608,7 +608,7 @@ class LibraryPropertiesManifestParser(BaseManifestParser):
|
|||||||
return None
|
return None
|
||||||
|
|
||||||
def _parse_export(self):
|
def _parse_export(self):
|
||||||
result = {"exclude": ["extras", "docs", "tests", "test", "*.doxyfile", "*.pdf"]}
|
result = {}
|
||||||
include = None
|
include = None
|
||||||
if self.remote_url:
|
if self.remote_url:
|
||||||
url_attrs = urlparse(self.remote_url)
|
url_attrs = urlparse(self.remote_url)
|
||||||
|
@ -22,7 +22,11 @@ import tempfile
|
|||||||
from platformio import fs
|
from platformio import fs
|
||||||
from platformio.compat import IS_WINDOWS
|
from platformio.compat import IS_WINDOWS
|
||||||
from platformio.package.exception import PackageException, UserSideException
|
from platformio.package.exception import PackageException, UserSideException
|
||||||
from platformio.package.manifest.parser import ManifestFileType, ManifestParserFactory
|
from platformio.package.manifest.parser import (
|
||||||
|
LibraryPropertiesManifestParser,
|
||||||
|
ManifestFileType,
|
||||||
|
ManifestParserFactory,
|
||||||
|
)
|
||||||
from platformio.package.manifest.schema import ManifestSchema
|
from platformio.package.manifest.schema import ManifestSchema
|
||||||
from platformio.package.meta import PackageItem
|
from platformio.package.meta import PackageItem
|
||||||
from platformio.package.unpack import FileUnpacker
|
from platformio.package.unpack import FileUnpacker
|
||||||
@ -55,6 +59,10 @@ class PackagePacker(object):
|
|||||||
"doc",
|
"doc",
|
||||||
"docs",
|
"docs",
|
||||||
"mkdocs",
|
"mkdocs",
|
||||||
|
"doxygen",
|
||||||
|
"*.doxyfile",
|
||||||
|
"html",
|
||||||
|
"media",
|
||||||
"**/*.[pP][dD][fF]",
|
"**/*.[pP][dD][fF]",
|
||||||
"**/*.[dD][oO][cC]?",
|
"**/*.[dD][oO][cC]?",
|
||||||
"**/*.[pP][pP][tT]?",
|
"**/*.[pP][pP][tT]?",
|
||||||
@ -79,10 +87,8 @@ class PackagePacker(object):
|
|||||||
EXCLUDE_LIBRARY_EXTRA = [
|
EXCLUDE_LIBRARY_EXTRA = [
|
||||||
"assets",
|
"assets",
|
||||||
"extra",
|
"extra",
|
||||||
|
"extras",
|
||||||
"resources",
|
"resources",
|
||||||
"html",
|
|
||||||
"media",
|
|
||||||
"doxygen",
|
|
||||||
"**/build/",
|
"**/build/",
|
||||||
"**/*.flat",
|
"**/*.flat",
|
||||||
"**/*.[jJ][aA][rR]",
|
"**/*.[jJ][aA][rR]",
|
||||||
@ -97,6 +103,7 @@ class PackagePacker(object):
|
|||||||
def __init__(self, package, manifest_uri=None):
|
def __init__(self, package, manifest_uri=None):
|
||||||
self.package = package
|
self.package = package
|
||||||
self.manifest_uri = manifest_uri
|
self.manifest_uri = manifest_uri
|
||||||
|
self.manifest_parser = None
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def get_archive_name(name, version, system=None):
|
def get_archive_name(name, version, system=None):
|
||||||
@ -128,7 +135,8 @@ class PackagePacker(object):
|
|||||||
src = tmp_dir
|
src = tmp_dir
|
||||||
|
|
||||||
src = self.find_source_root(src)
|
src = self.find_source_root(src)
|
||||||
manifest = self.load_manifest(src)
|
self.manifest_parser = ManifestParserFactory.new_from_dir(src)
|
||||||
|
manifest = ManifestSchema().load_manifest(self.manifest_parser.as_dict())
|
||||||
filename = self.get_archive_name(
|
filename = self.get_archive_name(
|
||||||
manifest["name"],
|
manifest["name"],
|
||||||
manifest["version"],
|
manifest["version"],
|
||||||
@ -144,11 +152,6 @@ class PackagePacker(object):
|
|||||||
finally:
|
finally:
|
||||||
shutil.rmtree(tmp_dir)
|
shutil.rmtree(tmp_dir)
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def load_manifest(src):
|
|
||||||
mp = ManifestParserFactory.new_from_dir(src)
|
|
||||||
return ManifestSchema().load_manifest(mp.as_dict())
|
|
||||||
|
|
||||||
def find_source_root(self, src):
|
def find_source_root(self, src):
|
||||||
if self.manifest_uri:
|
if self.manifest_uri:
|
||||||
mp = (
|
mp = (
|
||||||
@ -214,7 +217,9 @@ class PackagePacker(object):
|
|||||||
# exclude items declared in manifest
|
# exclude items declared in manifest
|
||||||
result += ["-<%s>" % p for p in exclude or []]
|
result += ["-<%s>" % p for p in exclude or []]
|
||||||
# apply extra excludes if no custom "export" field in manifest
|
# apply extra excludes if no custom "export" field in manifest
|
||||||
if not include and not exclude:
|
if (not include and not exclude) or isinstance(
|
||||||
|
self.manifest_parser, LibraryPropertiesManifestParser
|
||||||
|
):
|
||||||
result += ["-<%s>" % p for p in exclude_extra]
|
result += ["-<%s>" % p for p in exclude_extra]
|
||||||
# automatically include manifests
|
# automatically include manifests
|
||||||
result += ["+<%s>" % p for p in self.INCLUDE_DEFAULT]
|
result += ["+<%s>" % p for p in self.INCLUDE_DEFAULT]
|
||||||
|
Reference in New Issue
Block a user