Environment variables
are a set of dynamic named values that can affect the way running processes
will behave on a computer. PlatformIO handles variables which start with
PLATFORMIO_
prefix.
How to set environment variable?
# Windows
set VARIABLE_NAME=VALUE
# Windows GUI -> https://www.youtube.com/watch?v=bEroNNzqlF4
# Unix (bash, zsh)
export VARIABLE_NAME=VALUE
# Unix (fish)
set -x VARIABLE_NAME VALUE
Contents
PlatformIO uses General environment variables for the common operations/commands.
.. envvar:: CI
PlatformIO handles CI
variable which is setup by
Continuous Integration
(Travis, Circle and etc.) systems.
PlatformIO uses it to disable prompts and progress bars. In other words,
CI=true
automatically setup :envvar:`PLATFORMIO_DISABLE_PROGRESSBAR` to
true
.
.. envvar:: PLATFORMIO_AUTH_TOKEN
Allows one to specify Personal Authentication Token that could be used for automatic login in to :ref:`pioaccount`. It is very useful for :ref:`ci` systems and :ref:`pioremote` operations where you are not able manually authorize.
You can get own Personal Authentication Token using :ref:`cmd_account_token` command.
.. envvar:: PLATFORMIO_FORCE_ANSI
Force to output ANSI control character even if the output is a pipe
(not a tty
).
The possible values are true
and false
. Default is PLATFORMIO_FORCE_ANSI=false
.
.. envvar:: PLATFORMIO_NO_ANSI
Do not print ANSI control characters.
The possible values are true
and false
. Default is PLATFORMIO_NO_ANSI=false
.
You can also use :option:`pio --no-ansi` flag for :ref:`piocore`.
.. envvar:: PLATFORMIO_DISABLE_PROGRESSBAR
Disable progress bar for package/library downloader and uploader. This is
useful when calling PlatformIO from subprocess and output is a pipe
(not a tty
).
The possible values are true
and false
. Default is PLATFORMIO_DISABLE_PROGRESSBAR=false
.
.. envvar:: PLATFORMIO_SYSTEM_TYPE
This environment variable allows you to manually specify the system type, overriding the automatic detection. Examples:
windows_amd64
windows_arm64
linux_x86_64
linux_armv7l
darwin_arm64
.. envvar:: PLATFORMIO_CORE_DIR
Allows one to override :ref:`projectconf` option :ref:`projectconf_pio_core_dir`.
It may need to re-install :ref:`piocore` (remove default core directory) to take effect.
.. envvar:: PLATFORMIO_GLOBALLIB_DIR
Allows one to override :ref:`projectconf` option :ref:`projectconf_pio_globallib_dir`.
.. envvar:: PLATFORMIO_PLATFORMS_DIR
Allows one to override :ref:`projectconf` option :ref:`projectconf_pio_platforms_dir`.
.. envvar:: PLATFORMIO_PACKAGES_DIR
Allows one to override :ref:`projectconf` option :ref:`projectconf_pio_packages_dir`.
.. envvar:: PLATFORMIO_CACHE_DIR
Allows one to override :ref:`projectconf` option :ref:`projectconf_pio_cache_dir`.
.. envvar:: PLATFORMIO_BUILD_CACHE_DIR
Allows one to override :ref:`projectconf` option :ref:`projectconf_pio_build_cache_dir`.
.. envvar:: PLATFORMIO_WORKSPACE_DIR
Allows one to override :ref:`projectconf` option :ref:`projectconf_pio_workspace_dir`.
.. envvar:: PLATFORMIO_INCLUDE_DIR
Allows one to override :ref:`projectconf` option :ref:`projectconf_pio_include_dir`.
.. envvar:: PLATFORMIO_SRC_DIR
Allows one to override :ref:`projectconf` option :ref:`projectconf_pio_src_dir`.
.. envvar:: PLATFORMIO_LIB_DIR
Allows one to override :ref:`projectconf` option :ref:`projectconf_pio_lib_dir`.
.. envvar:: PLATFORMIO_LIBDEPS_DIR
Allows one to override :ref:`projectconf` option :ref:`projectconf_pio_libdeps_dir`.
.. envvar:: PLATFORMIO_BUILD_DIR
Allows one to override :ref:`projectconf` option :ref:`projectconf_pio_build_dir`.
.. envvar:: PLATFORMIO_DATA_DIR
Allows one to override :ref:`projectconf` option :ref:`projectconf_pio_data_dir`.
.. envvar:: PLATFORMIO_TEST_DIR
Allows one to override :ref:`projectconf` option :ref:`projectconf_pio_test_dir`.
.. envvar:: PLATFORMIO_BOARDS_DIR
Allows one to override :ref:`projectconf` option :ref:`projectconf_pio_boards_dir`.
.. envvar:: PLATFORMIO_MONITOR_DIR
Allows one to override :ref:`projectconf` option :ref:`projectconf_pio_monitor_dir`.
.. envvar:: PLATFORMIO_SHARED_DIR
Allows one to override :ref:`projectconf` option :ref:`projectconf_pio_shared_dir`.
.. envvar:: PLATFORMIO_REMOTE_AGENT_DIR
Allows one to override :option:`pio remote agent start --working-dir`.
.. envvar:: PLATFORMIO_BUILD_FLAGS
Allows one to set :ref:`projectconf` option :ref:`projectconf_build_flags`.
Examples:
# Unix:
export PLATFORMIO_BUILD_FLAGS=-DFOO
export PLATFORMIO_BUILD_FLAGS=-DFOO -DBAR=1 -Wall
# Windows:
SET PLATFORMIO_BUILD_FLAGS=-DFOO
SET PLATFORMIO_BUILD_FLAGS=-DFOO -DBAR=1 -Wall
Warning
Consider using :ref:`projectconf_interpolation` instead of PLATFORMIO_BUILD_FLAGS
environment variable if additional build flags contain preprocessor directive with
special characters ($
, &
, ~
, etc) in its value.
.. envvar:: PLATFORMIO_BUILD_SRC_FLAGS
Allows one to set :ref:`projectconf` option :ref:`projectconf_build_src_flags`.
.. envvar:: PLATFORMIO_BUILD_SRC_FILTER
Allows one to set :ref:`projectconf` option :ref:`projectconf_build_src_filter`.
.. envvar:: PLATFORMIO_EXTRA_SCRIPTS
Allows one to set :ref:`projectconf` option :ref:`projectconf_extra_scripts`.
.. envvar:: PLATFORMIO_DEFAULT_ENVS
Allows one to set :ref:`projectconf` option :ref:`projectconf_pio_default_envs`.
.. envvar:: PLATFORMIO_UPLOAD_PORT
Allows one to set :ref:`projectconf` option :ref:`projectconf_upload_port`.
.. envvar:: PLATFORMIO_UPLOAD_FLAGS
Allows one to set :ref:`projectconf` option :ref:`projectconf_upload_flags`.
Allows one to override PlatformIO settings. You can manage them via :ref:`cmd_settings` command.
.. envvar:: PLATFORMIO_SETTING_CHECK_PLATFORMIO_INTERVAL
Allows one to override setting :ref:`setting_check_platformio_interval`.
.. envvar:: PLATFORMIO_SETTING_CHECK_PRUNE_SYSTEM_THRESHOLD
Allows one to override setting :ref:`setting_check_prune_system_threshold`.
.. envvar:: PLATFORMIO_SETTING_ENABLE_CACHE
Allows one to override setting :ref:`setting_enable_cache`.
.. envvar:: PLATFORMIO_SETTING_ENABLE_TELEMETRY
Allows one to override setting :ref:`setting_enable_telemetry`.
.. envvar:: PLATFORMIO_SETTING_FORCE_VERBOSE
Allows one to override setting :ref:`setting_force_verbose`.
.. envvar:: PLATFORMIO_SETTING_PROJECTS_DIR
Allows one to override setting :ref:`setting_projects_dir`.
.. envvar:: PLATFORMIO_SETTING_ENABLE_PROXY_STRICT_SSL
Allows one to override setting :ref:`setting_enable_proxy_strict_ssl`.