mirror of
https://github.com/platformio/platformio-core.git
synced 2025-07-30 01:57:13 +02:00
Refactor Library Dependency Finder
This commit is contained in:
@ -16,7 +16,7 @@ PlatformIO 3.0
|
|||||||
* New Intelligent Library Build System
|
* New Intelligent Library Build System
|
||||||
|
|
||||||
+ `Library Dependency Finder <http://docs.platformio.org/en/latest/faq.html#how-works-library-dependency-finder-ldf>`__
|
+ `Library Dependency Finder <http://docs.platformio.org/en/latest/faq.html#how-works-library-dependency-finder-ldf>`__
|
||||||
that interprets C Preprocessor conditional macros and nested includes/chain
|
that interprets C Preprocessor conditional macros with deep search behavior
|
||||||
+ Check library compatibility with project environment before building
|
+ Check library compatibility with project environment before building
|
||||||
(`issue #415 <https://github.com/platformio/platformio/issues/415>`_)
|
(`issue #415 <https://github.com/platformio/platformio/issues/415>`_)
|
||||||
+ Control Library Dependency Finder for compatibility using
|
+ Control Library Dependency Finder for compatibility using
|
||||||
|
@ -42,8 +42,7 @@ Library Dependency Finder is a part of PlatformIO Library Build System. It
|
|||||||
operates with the header files (``*.h, *.hpp``) and looks for
|
operates with the header files (``*.h, *.hpp``) and looks for
|
||||||
``#include <...>`` directives. What is more, LDF interprets C Preprocessor
|
``#include <...>`` directives. What is more, LDF interprets C Preprocessor
|
||||||
conditional macros (``#ifdef ...``, etc.). Library Dependency Finder starts
|
conditional macros (``#ifdef ...``, etc.). Library Dependency Finder starts
|
||||||
work from analyzing source files from :ref:`projectconf_pio_src_dir`. It
|
work from analyzing source files from :ref:`projectconf_pio_src_dir`.
|
||||||
understands "nested includes/chain" by default if they depend on each other.
|
|
||||||
|
|
||||||
There are different library storages where Library Dependency Finder looks for
|
There are different library storages where Library Dependency Finder looks for
|
||||||
dependencies. These storages/folders have priority. LDF operates in the next
|
dependencies. These storages/folders have priority. LDF operates in the next
|
||||||
|
@ -650,18 +650,17 @@ Example:
|
|||||||
|
|
||||||
Please make sure to read :ref:`faq_ldf` guides first.
|
Please make sure to read :ref:`faq_ldf` guides first.
|
||||||
|
|
||||||
By default, this option is turned OFF (``lib_deep_search = false``) and means
|
By default, this option is turned ON (``lib_deep_search = true``) and means
|
||||||
that Library Dependency Finder will analyzes only "nested includes/chain".
|
that Library Dependency Finder will analyze ALL source files from the library
|
||||||
|
and will try automatically find all dependencies.
|
||||||
|
|
||||||
Nevertheless, some libraries depend on other libraries and the
|
If you want to disable deep search, please set this option to ``false``.
|
||||||
|
Note! Some libraries depend on other libraries and the
|
||||||
``#include <...>`` directives for these libraries are not declared in the
|
``#include <...>`` directives for these libraries are not declared in the
|
||||||
"main" header file that is used by upper library. In this case, LDF will not
|
"main" header file that is used by upper library. If LDF is turned OFF
|
||||||
handle these libraries automatically because it doesn't analyze "each source
|
(``lib_deep_search = false``), it will not handle these libraries automatically
|
||||||
file" of the nested libraries.
|
because it doesn't analyze "each source file" of the nested libraries
|
||||||
|
(only "nested includes/chain").
|
||||||
If you want to enable deep search, please set this option to ``true``.
|
|
||||||
Found library will be treated like the new source files and LDF will
|
|
||||||
search dependencies for it.
|
|
||||||
|
|
||||||
For example, there are 2 libraries:
|
For example, there are 2 libraries:
|
||||||
|
|
||||||
|
@ -30,6 +30,14 @@ Description
|
|||||||
Install new library by specified
|
Install new library by specified
|
||||||
`PlatformIO Library Registry ID <http://platformio.org/lib>`_.
|
`PlatformIO Library Registry ID <http://platformio.org/lib>`_.
|
||||||
|
|
||||||
|
Installs the project library dependencies or a specific set of libraries.
|
||||||
|
[LIBRARY] can have multiple forms: <source>, <source>@<target>,
|
||||||
|
<id=> or <name>=<source>@<target>
|
||||||
|
|
||||||
|
Where, <source> is a registry ID, registry name, repository URL, physical
|
||||||
|
location, <target> is a valid semantic version/range, commit, branch, etc., and
|
||||||
|
<name> is the name it should have locally.
|
||||||
|
|
||||||
Options
|
Options
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
VERSION = (3, 0, "0.dev11")
|
VERSION = (3, 0, "0.dev12")
|
||||||
__version__ = ".".join([str(s) for s in VERSION])
|
__version__ = ".".join([str(s) for s in VERSION])
|
||||||
|
|
||||||
__title__ = "platformio"
|
__title__ = "platformio"
|
||||||
|
2
setup.py
2
setup.py
@ -21,7 +21,7 @@ from platformio import (__author__, __description__, __email__, __license__,
|
|||||||
|
|
||||||
install_requires = [
|
install_requires = [
|
||||||
"bottle<0.13",
|
"bottle<0.13",
|
||||||
"click>=3.2,<6",
|
"click>=5,<6",
|
||||||
"lockfile>=0.9.1,<0.13",
|
"lockfile>=0.9.1,<0.13",
|
||||||
"requests>=2.4.0,<3",
|
"requests>=2.4.0,<3",
|
||||||
"semantic_version>=2.5.0",
|
"semantic_version>=2.5.0",
|
||||||
|
Reference in New Issue
Block a user