mirror of
https://github.com/platformio/platformio-core.git
synced 2025-07-30 10:07:14 +02:00
Custom boards per project with `boards_dir
` option in platformio.ini // Resolve #515
This commit is contained in:
@ -14,7 +14,10 @@ PlatformIO 3.0
|
|||||||
* Inject system environment variables to configuration settings in
|
* Inject system environment variables to configuration settings in
|
||||||
`Project Configuration File "platformio.ini" <http://docs.platformio.org/en/stable/projectconf.html>`__
|
`Project Configuration File "platformio.ini" <http://docs.platformio.org/en/stable/projectconf.html>`__
|
||||||
(`issue #792 <https://github.com/platformio/platformio/issues/792>`_)
|
(`issue #792 <https://github.com/platformio/platformio/issues/792>`_)
|
||||||
* Changed default exit combination for Device Monitor from ``Ctrl+]`` to ``Ctrl+C``
|
* Custom boards per project with ``boards_dir`` option in
|
||||||
|
`Project Configuration File "platformio.ini" <http://docs.platformio.org/en/stable/projectconf.html>`__
|
||||||
|
(`issue #515 <https://github.com/platformio/platformio/issues/515>`_)
|
||||||
|
* Changed a default exit combination for Device Monitor from ``Ctrl+]`` to ``Ctrl+C``
|
||||||
* Improved detecting of ARM mbed media disk for uploading
|
* Improved detecting of ARM mbed media disk for uploading
|
||||||
* Improved Project Generator for CLion IDE when source folder contains nested items
|
* Improved Project Generator for CLion IDE when source folder contains nested items
|
||||||
* Improved handling of library dependencies specified in ``library.json`` manifest
|
* Improved handling of library dependencies specified in ``library.json`` manifest
|
||||||
|
@ -77,6 +77,9 @@ Allows to override :ref:`projectconf` option :ref:`projectconf_pio_data_dir`.
|
|||||||
|
|
||||||
Allows to override :ref:`projectconf` option :ref:`projectconf_pio_test_dir`.
|
Allows to override :ref:`projectconf` option :ref:`projectconf_pio_test_dir`.
|
||||||
|
|
||||||
|
.. envvar:: PLATFORMIO_BOARDS_DIR
|
||||||
|
|
||||||
|
Allows to override :ref:`projectconf` option :ref:`projectconf_pio_boards_dir`.
|
||||||
|
|
||||||
Building
|
Building
|
||||||
--------
|
--------
|
||||||
|
@ -72,13 +72,16 @@ Installation
|
|||||||
|
|
||||||
1. Create ``boards`` directory in :ref:`projectconf_pio_home_dir` if it
|
1. Create ``boards`` directory in :ref:`projectconf_pio_home_dir` if it
|
||||||
doesn't exist.
|
doesn't exist.
|
||||||
2. Create ``myboard.json`` file and put to ``boards`` directory.
|
2. Create ``myboard.json`` file in this ``boards`` directory.
|
||||||
3. Search available boards via :ref:`cmd_boards` command. You should see
|
3. Search available boards via :ref:`cmd_boards` command. You should see
|
||||||
``myboard`` board.
|
``myboard`` board.
|
||||||
|
|
||||||
Now, you can use ``myboard`` for the :ref:`projectconf_env_board` option in
|
Now, you can use ``myboard`` for the :ref:`projectconf_env_board` option in
|
||||||
:ref:`projectconf`.
|
:ref:`projectconf`.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
You can have custom boards per project. In this case, please put your
|
||||||
|
board's JSON files to :ref:`projectconf_pio_boards_dir`.
|
||||||
|
|
||||||
Examples
|
Examples
|
||||||
--------
|
--------
|
||||||
|
@ -103,6 +103,45 @@ A ``platformio`` section is used for overriding default configuration options
|
|||||||
Options
|
Options
|
||||||
~~~~~~~
|
~~~~~~~
|
||||||
|
|
||||||
|
.. _projectconf_pio_env_default:
|
||||||
|
|
||||||
|
``env_default``
|
||||||
|
^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
:ref:`cmd_run` command processes all environments ``[env:***]`` by default
|
||||||
|
if :option:`platformio run --environment` option is not specified.
|
||||||
|
:ref:`projectconf_pio_env_default` allows to define environments which
|
||||||
|
should be processed by default.
|
||||||
|
|
||||||
|
Multiple environments are allowed if they are separated with ", "
|
||||||
|
(comma+space). For example.
|
||||||
|
|
||||||
|
.. code-block:: ini
|
||||||
|
|
||||||
|
[platformio]
|
||||||
|
env_default = uno, nodemcu
|
||||||
|
|
||||||
|
[env:uno]
|
||||||
|
platform = atmelavr
|
||||||
|
framework = arduino
|
||||||
|
board = uno
|
||||||
|
|
||||||
|
[env:nodemcu]
|
||||||
|
platform = espressif8266
|
||||||
|
framework = arduino
|
||||||
|
board = nodemcu
|
||||||
|
|
||||||
|
[env:teensy31]
|
||||||
|
platform = teensy
|
||||||
|
framework = arduino
|
||||||
|
board = teensy31
|
||||||
|
|
||||||
|
[env:lpmsp430g2553]
|
||||||
|
platform = timsp430
|
||||||
|
framework = energia
|
||||||
|
board = lpmsp430g2553
|
||||||
|
build_flags = -D LED_BUILTIN=RED_LED
|
||||||
|
|
||||||
.. _projectconf_pio_home_dir:
|
.. _projectconf_pio_home_dir:
|
||||||
|
|
||||||
``home_dir``
|
``home_dir``
|
||||||
@ -256,44 +295,25 @@ project.
|
|||||||
This option can be overridden by global environment variable
|
This option can be overridden by global environment variable
|
||||||
:envvar:`PLATFORMIO_TEST_DIR`.
|
:envvar:`PLATFORMIO_TEST_DIR`.
|
||||||
|
|
||||||
.. _projectconf_pio_env_default:
|
.. _projectconf_pio_boards_dir:
|
||||||
|
|
||||||
``env_default``
|
``boards_dir``
|
||||||
^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^
|
||||||
|
|
||||||
:ref:`cmd_run` command processes all environments ``[env:***]`` by default
|
Custom board settings per project. You can change this path with your own.
|
||||||
if :option:`platformio run --environment` option is not specified.
|
A default value is ``boards`` that means that folder is located in the root of
|
||||||
:ref:`projectconf_pio_env_default` allows to define environments which
|
project.
|
||||||
should be processed by default.
|
|
||||||
|
|
||||||
Multiple environments are allowed if they are separated with ", "
|
By default, PlatformIO looks for boards in this order:
|
||||||
(comma+space). For example.
|
|
||||||
|
|
||||||
.. code-block:: ini
|
1. Project :ref:`projectconf_pio_boards_dir`
|
||||||
|
2. Global :ref:`projectconf_pio_home_dir`/boards
|
||||||
|
3. Development platform :ref:`projectconf_pio_home_dir`/platforms/\*/boards.
|
||||||
|
|
||||||
[platformio]
|
This option can be overridden by global environment variable
|
||||||
env_default = uno, nodemcu
|
:envvar:`PLATFORMIO_BOARDS_DIR`.
|
||||||
|
|
||||||
[env:uno]
|
--------
|
||||||
platform = atmelavr
|
|
||||||
framework = arduino
|
|
||||||
board = uno
|
|
||||||
|
|
||||||
[env:nodemcu]
|
|
||||||
platform = espressif8266
|
|
||||||
framework = arduino
|
|
||||||
board = nodemcu
|
|
||||||
|
|
||||||
[env:teensy31]
|
|
||||||
platform = teensy
|
|
||||||
framework = arduino
|
|
||||||
board = teensy31
|
|
||||||
|
|
||||||
[env:lpmsp430g2553]
|
|
||||||
platform = timsp430
|
|
||||||
framework = energia
|
|
||||||
board = lpmsp430g2553
|
|
||||||
build_flags = -D LED_BUILTIN=RED_LED
|
|
||||||
|
|
||||||
.. _projectconf_section_env:
|
.. _projectconf_section_env:
|
||||||
|
|
||||||
|
@ -395,8 +395,12 @@ class PlatformBase(PlatformPackagesMixin, PlatformRunMixin):
|
|||||||
config.manifest['platform'] = self.name
|
config.manifest['platform'] = self.name
|
||||||
self._BOARDS_CACHE[board_id] = config
|
self._BOARDS_CACHE[board_id] = config
|
||||||
|
|
||||||
bdirs = (join(util.get_home_dir(), "boards"),
|
bdirs = [
|
||||||
join(self.get_dir(), "boards"))
|
util.get_projectboards_dir(),
|
||||||
|
join(util.get_home_dir(), "boards"),
|
||||||
|
join(self.get_dir(), "boards"),
|
||||||
|
]
|
||||||
|
|
||||||
if id_ is None:
|
if id_ is None:
|
||||||
for boards_dir in bdirs:
|
for boards_dir in bdirs:
|
||||||
if not isdir(boards_dir):
|
if not isdir(boards_dir):
|
||||||
|
@ -258,6 +258,11 @@ def get_projecttest_dir():
|
|||||||
"test"))
|
"test"))
|
||||||
|
|
||||||
|
|
||||||
|
def get_projectboards_dir():
|
||||||
|
return _get_projconf_option_dir("boards_dir", join(get_project_dir(),
|
||||||
|
"boards"))
|
||||||
|
|
||||||
|
|
||||||
def get_projectpioenvs_dir(force=False):
|
def get_projectpioenvs_dir(force=False):
|
||||||
path = _get_projconf_option_dir("envs_dir",
|
path = _get_projconf_option_dir("envs_dir",
|
||||||
join(get_project_dir(), ".pioenvs"))
|
join(get_project_dir(), ".pioenvs"))
|
||||||
|
Reference in New Issue
Block a user