2019-04-28 22:37:02 -04:00
@ echo off
if defined MSYSTEM (
2021-11-09 07:10:56 -05:00
echo This .bat file is for Windows CMD.EXE shell only.
2019-04-28 22:37:02 -04:00
goto : eof
)
2021-03-09 06:53:11 -05:00
: : Missing requirements check
set MISSING_REQUIREMENTS =
python.exe --version > NUL 2 > NUL
if %errorlevel% neq 0 set " MISSING_REQUIREMENTS= python &echo\ "
git.exe --version > NUL 2 > NUL
if %errorlevel% neq 0 set " MISSING_REQUIREMENTS= %MISSING_REQUIREMENTS% git "
2021-10-06 07:48:11 -04:00
if not " %MISSING_REQUIREMENTS% " == " " goto : __error_missing_requirements
2021-03-09 06:53:11 -05:00
2019-04-28 22:37:02 -04:00
: : Infer IDF_PATH from script location
set IDF_PATH = %~dp0
set IDF_PATH = %IDF_PATH:~0,-1%
2022-02-15 12:36:46 -05:00
echo Checking Python compatibility
python.exe " %IDF_PATH% \tools\python_version_checker.py "
2021-10-06 05:06:22 -04:00
set " IDF_TOOLS_PY_PATH= %IDF_PATH% \tools\idf_tools.py "
set " IDF_TOOLS_JSON_PATH= %IDF_PATH% \tools\tools.json "
set " IDF_TOOLS_EXPORT_CMD= %IDF_PATH% \export.bat "
set " IDF_TOOLS_INSTALL_CMD= %IDF_PATH% \install.bat "
2019-04-28 22:37:02 -04:00
echo Setting IDF_PATH: %IDF_PATH%
echo .
set " OLD_PATH= %PATH% "
echo Adding ESP-IDF tools to PATH...
: : Export tool paths and environment variables.
: : It is possible to do this without a temporary file (running idf_tools.py from for /r command),
: : but that way it is impossible to get the exit code of idf_tools.py.
set " IDF_TOOLS_EXPORTS_FILE= %TEMP% \idf_export_vars.tmp "
2021-10-06 05:06:22 -04:00
python.exe " %IDF_PATH% \tools\idf_tools.py " export --format key-value > " %IDF_TOOLS_EXPORTS_FILE% "
2021-10-06 07:48:11 -04:00
if %errorlevel% neq 0 goto : __end
2019-04-28 22:37:02 -04:00
for /f " usebackq tokens=1,2 eol=# delims== " %% a in ( " %IDF_TOOLS_EXPORTS_FILE% " ) do (
call set " %% a= %% b "
)
: : This removes OLD_PATH substring from PATH, leaving only the paths which have been added,
: : and prints semicolon-delimited components of the path on separate lines
call set PATH_ADDITIONS = %% PATH:%OLD_PATH% =%%
2021-10-06 07:48:11 -04:00
if " %PATH_ADDITIONS% " == " " call : __print_nothing_added
2019-04-28 22:37:02 -04:00
if not " %PATH_ADDITIONS% " == " " echo %PATH_ADDITIONS:;=&echo. %
2021-10-06 05:06:22 -04:00
DOSKEY idf.py=python.exe " %IDF_PATH% \tools\idf.py " $*
DOSKEY esptool.py=python.exe " %IDF_PATH% \components\esptool_py\esptool\esptool.py " $*
DOSKEY espefuse.py=python.exe " %IDF_PATH% \components\esptool_py\esptool\espefuse.py " $*
DOSKEY otatool.py=python.exe " %IDF_PATH% \components\app_update\otatool.py " $*
DOSKEY parttool.py=python.exe " %IDF_PATH% \components\partition_table\parttool.py " $*
2019-04-28 22:37:02 -04:00
echo Checking if Python packages are up to date...
2021-09-16 10:48:03 -04:00
python.exe " %IDF_PATH% \tools\idf_tools.py " check-python-dependencies
2021-10-06 07:48:11 -04:00
if %errorlevel% neq 0 goto : __end
2019-04-28 22:37:02 -04:00
2021-12-13 10:45:11 -05:00
python.exe " %IDF_PATH% \tools\idf_tools.py " uninstall --dry-run > UNINSTALL_OUTPUT
SET /p UNINSTALL = < UNINSTALL_OUTPUT
DEL UNINSTALL_OUTPUT
if NOT " %UNINSTALL% " == " " call : __uninstall_message
2019-04-28 22:37:02 -04:00
echo .
echo Done! You can now compile ESP-IDF projects.
echo Go to the project directory and run:
echo .
echo idf.py build
echo .
2021-10-06 07:48:11 -04:00
goto : __end
2019-04-28 22:37:02 -04:00
2021-10-06 07:48:11 -04:00
: __print_nothing_added
2019-04-28 22:37:02 -04:00
echo No directories added to PATH:
echo .
echo %PATH%
echo .
goto : eof
2021-10-06 07:48:11 -04:00
: __error_missing_requirements
2021-03-09 06:53:11 -05:00
echo .
echo Error^: The following tools are not installed in your environment.
echo .
echo %MISSING_REQUIREMENTS%
echo .
echo Please use the Windows Tool installer for setting up your environment.
echo Download link: https://dl.espressif.com/dl/esp-idf/
echo For more details please visit our website: https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/windows-setup.html
2021-10-06 07:48:11 -04:00
goto : __end
2019-04-28 22:37:02 -04:00
2021-12-13 10:45:11 -05:00
: __uninstall_message
echo .
echo Detected installed tools that are not currently used by active ESP-IDF version.
echo %UNINSTALL%
echo For free up even more space, remove installation packages of those tools. Use option 'python.exe %IDF_PATH% \tools\idf_tools.py uninstall --remove-archives'.
echo .
2021-10-06 07:48:11 -04:00
: __end
2019-04-28 22:37:02 -04:00
: : Clean up
if not " %IDF_TOOLS_EXPORTS_FILE% " == " " (
del " %IDF_TOOLS_EXPORTS_FILE% " 1 > nul 2 > nul
)
set IDF_TOOLS_EXPORTS_FILE =
set IDF_TOOLS_EXPORT_CMD =
set IDF_TOOLS_INSTALL_CMD =
set IDF_TOOLS_PY_PATH =
set IDF_TOOLS_JSON_PATH =
set OLD_PATH =
set PATH_ADDITIONS =
2021-03-09 06:53:11 -05:00
set MISSING_REQUIREMENTS =
2021-12-13 10:45:11 -05:00
set UNINSTALL =