1@echo off 2if defined MSYSTEM ( 3 echo This .bat file is for Windows CMD.EXE shell only. When using MSYS, run: 4 echo . ./export.sh. 5 goto :eof 6) 7 8:: Infer IDF_PATH from script location 9set IDF_PATH=%~dp0 10set IDF_PATH=%IDF_PATH:~0,-1% 11 12set IDF_TOOLS_PY_PATH=%IDF_PATH%\tools\idf_tools.py 13set IDF_TOOLS_JSON_PATH=%IDF_PATH%\tools\tools.json 14set IDF_TOOLS_EXPORT_CMD=%IDF_PATH%\export.bat 15set IDF_TOOLS_INSTALL_CMD=%IDF_PATH%\install.bat 16echo Setting IDF_PATH: %IDF_PATH% 17echo. 18 19set "OLD_PATH=%PATH%" 20echo Adding ESP-IDF tools to PATH... 21:: Export tool paths and environment variables. 22:: It is possible to do this without a temporary file (running idf_tools.py from for /r command), 23:: but that way it is impossible to get the exit code of idf_tools.py. 24set "IDF_TOOLS_EXPORTS_FILE=%TEMP%\idf_export_vars.tmp" 25python.exe %IDF_PATH%\tools\idf_tools.py export --format key-value >"%IDF_TOOLS_EXPORTS_FILE%" 26if %errorlevel% neq 0 goto :end 27 28for /f "usebackq tokens=1,2 eol=# delims==" %%a in ("%IDF_TOOLS_EXPORTS_FILE%") do ( 29 call set "%%a=%%b" 30 ) 31 32:: This removes OLD_PATH substring from PATH, leaving only the paths which have been added, 33:: and prints semicolon-delimited components of the path on separate lines 34call set PATH_ADDITIONS=%%PATH:%OLD_PATH%=%% 35if "%PATH_ADDITIONS%"=="" call :print_nothing_added 36if not "%PATH_ADDITIONS%"=="" echo %PATH_ADDITIONS:;=&echo. % 37 38echo Checking if Python packages are up to date... 39python.exe %IDF_PATH%\tools\check_python_dependencies.py 40if %errorlevel% neq 0 goto :end 41 42echo. 43echo Done! You can now compile ESP-IDF projects. 44echo Go to the project directory and run: 45echo. 46echo idf.py build 47echo. 48 49goto :end 50 51:print_nothing_added 52 echo No directories added to PATH: 53 echo. 54 echo %PATH% 55 echo. 56 goto :eof 57 58:end 59 60:: Clean up 61if not "%IDF_TOOLS_EXPORTS_FILE%"=="" ( 62 del "%IDF_TOOLS_EXPORTS_FILE%" 1>nul 2>nul 63) 64set IDF_TOOLS_EXPORTS_FILE= 65set IDF_TOOLS_EXPORT_CMD= 66set IDF_TOOLS_INSTALL_CMD= 67set IDF_TOOLS_PY_PATH= 68set IDF_TOOLS_JSON_PATH= 69set OLD_PATH= 70set PATH_ADDITIONS= 71