mirror of
https://github.com/espressif/esp-idf.git
synced 2025-08-05 21:54:33 +02:00
Merge branch 'bugfix/build_spaces_in_path_tools' into 'master'
tools: fix issues related to spaces in paths in install and export scripts Closes IDFGH-5913 See merge request espressif/esp-idf!15430
This commit is contained in:
25
export.bat
25
export.bat
@@ -14,21 +14,14 @@ if %errorlevel% neq 0 set "MISSING_REQUIREMENTS=%MISSING_REQUIREMENTS% git"
|
||||
|
||||
if not "%MISSING_REQUIREMENTS%" == "" goto :__error_missing_requirements
|
||||
|
||||
set PREFIX=python.exe %IDF_PATH%
|
||||
DOSKEY idf.py=%PREFIX%\tools\idf.py $*
|
||||
DOSKEY esptool.py=%PREFIX%\components\esptool_py\esptool\esptool.py $*
|
||||
DOSKEY espefuse.py=%PREFIX%\components\esptool_py\esptool\espefuse.py $*
|
||||
DOSKEY otatool.py=%PREFIX%\components\app_update\otatool.py $*
|
||||
DOSKEY parttool.py=%PREFIX%\components\partition_table\parttool.py $*
|
||||
|
||||
:: Infer IDF_PATH from script location
|
||||
set IDF_PATH=%~dp0
|
||||
set IDF_PATH=%IDF_PATH:~0,-1%
|
||||
|
||||
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
|
||||
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"
|
||||
echo Setting IDF_PATH: %IDF_PATH%
|
||||
echo.
|
||||
|
||||
@@ -38,7 +31,7 @@ echo Adding ESP-IDF tools to PATH...
|
||||
:: 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"
|
||||
python.exe %IDF_PATH%\tools\idf_tools.py export --format key-value >"%IDF_TOOLS_EXPORTS_FILE%"
|
||||
python.exe "%IDF_PATH%\tools\idf_tools.py" export --format key-value >"%IDF_TOOLS_EXPORTS_FILE%"
|
||||
if %errorlevel% neq 0 goto :__end
|
||||
|
||||
for /f "usebackq tokens=1,2 eol=# delims==" %%a in ("%IDF_TOOLS_EXPORTS_FILE%") do (
|
||||
@@ -51,8 +44,14 @@ call set PATH_ADDITIONS=%%PATH:%OLD_PATH%=%%
|
||||
if "%PATH_ADDITIONS%"=="" call :__print_nothing_added
|
||||
if not "%PATH_ADDITIONS%"=="" echo %PATH_ADDITIONS:;=&echo. %
|
||||
|
||||
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" $*
|
||||
|
||||
echo Checking if Python packages are up to date...
|
||||
python.exe %IDF_PATH%\tools\check_python_dependencies.py
|
||||
python.exe "%IDF_PATH%\tools\check_python_dependencies.py"
|
||||
if %errorlevel% neq 0 goto :__end
|
||||
|
||||
echo.
|
||||
|
11
export.sh
11
export.sh
@@ -52,7 +52,7 @@ __main() {
|
||||
# shellcheck disable=SC2169,SC2169,SC2039 # unreachable with 'dash'
|
||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
# convert possibly relative path to absolute
|
||||
script_dir="$(realpath_int "${self_path}")"
|
||||
script_dir="$(__realpath "${self_path}")"
|
||||
# resolve any ../ references to make the path shorter
|
||||
script_dir="$(cd "${script_dir}" || exit 1; pwd)"
|
||||
else
|
||||
@@ -111,16 +111,19 @@ __main() {
|
||||
then
|
||||
path_prefix=${PATH%%${old_path}}
|
||||
# shellcheck disable=SC2169,SC2039 # unreachable with 'dash'
|
||||
paths="${path_prefix//:/ }"
|
||||
if [ -n "${paths}" ]; then
|
||||
if [ -n "${path_prefix}" ]; then
|
||||
__verbose "Added the following directories to PATH:"
|
||||
else
|
||||
__verbose "All paths are already set."
|
||||
fi
|
||||
for path_entry in ${paths}
|
||||
old_ifs="$IFS"
|
||||
IFS=":"
|
||||
for path_entry in ${path_prefix}
|
||||
do
|
||||
__verbose " ${path_entry}"
|
||||
done
|
||||
IFS="$old_ifs"
|
||||
unset old_ifs
|
||||
else
|
||||
__verbose "Updated PATH variable:"
|
||||
__verbose " ${PATH}"
|
||||
|
@@ -22,11 +22,11 @@ set TARGETS="all"
|
||||
if NOT "%1"=="" set TARGETS=%*
|
||||
|
||||
echo Installing ESP-IDF tools
|
||||
python.exe %IDF_PATH%\tools\idf_tools.py install --targets=%TARGETS%
|
||||
python.exe "%IDF_PATH%\tools\idf_tools.py" install --targets=%TARGETS%
|
||||
if %errorlevel% neq 0 goto :end
|
||||
|
||||
echo Setting up Python environment
|
||||
python.exe %IDF_PATH%\tools\idf_tools.py install-python-env
|
||||
python.exe "%IDF_PATH%\tools\idf_tools.py" install-python-env
|
||||
if %errorlevel% neq 0 goto :end
|
||||
|
||||
echo All done! You can now run:
|
||||
|
11
install.sh
11
install.sh
@@ -3,10 +3,12 @@
|
||||
set -e
|
||||
set -u
|
||||
|
||||
export IDF_PATH=$(cd $(dirname $0); pwd)
|
||||
basedir=$(dirname "$0")
|
||||
IDF_PATH=$(cd "${basedir}"; pwd)
|
||||
export IDF_PATH
|
||||
|
||||
echo "Detecting the Python interpreter"
|
||||
. ${IDF_PATH}/tools/detect_python.sh
|
||||
. "${IDF_PATH}/tools/detect_python.sh"
|
||||
|
||||
if [ "$#" -eq 0 ]; then
|
||||
TARGETS="all"
|
||||
@@ -14,12 +16,11 @@ else
|
||||
TARGETS=$1
|
||||
fi
|
||||
echo "Installing ESP-IDF tools"
|
||||
${ESP_PYTHON} ${IDF_PATH}/tools/idf_tools.py install --targets=${TARGETS}
|
||||
"${ESP_PYTHON}" "${IDF_PATH}/tools/idf_tools.py" install --targets=${TARGETS}
|
||||
|
||||
echo "Installing Python environment and packages"
|
||||
${ESP_PYTHON} ${IDF_PATH}/tools/idf_tools.py install-python-env
|
||||
"${ESP_PYTHON}" "${IDF_PATH}/tools/idf_tools.py" install-python-env
|
||||
|
||||
basedir="$(dirname $0)"
|
||||
echo "All done! You can now run:"
|
||||
echo ""
|
||||
echo " . ${basedir}/export.sh"
|
||||
|
@@ -4190,4 +4190,3 @@ tools/unit-test-app/tools/CreateSectionTable.py
|
||||
tools/unit-test-app/tools/UnitTestParser.py
|
||||
tools/unit-test-app/unit_test.py
|
||||
tools/windows/eclipse_make.py
|
||||
tools/windows/idf_exe/idf_main.c
|
||||
|
@@ -625,17 +625,17 @@
|
||||
"version_regex": "([0-9.]+)",
|
||||
"versions": [
|
||||
{
|
||||
"name": "1.0.1",
|
||||
"name": "1.0.2",
|
||||
"status": "recommended",
|
||||
"win32": {
|
||||
"sha256": "53eb6aaaf034cc7ed1a97d5c577afa0f99815b7793905e9408e74012d357d04a",
|
||||
"size": 11297,
|
||||
"url": "https://dl.espressif.com/dl/idf-exe-v1.0.1.zip"
|
||||
"sha256": "93d45466cd2c86231f0693a60f68833db7bc63da17e876b2a64298a8869b916f",
|
||||
"size": 7223,
|
||||
"url": "https://dl.espressif.com/dl/idf-exe-v1.0.2.zip"
|
||||
},
|
||||
"win64": {
|
||||
"sha256": "53eb6aaaf034cc7ed1a97d5c577afa0f99815b7793905e9408e74012d357d04a",
|
||||
"size": 11297,
|
||||
"url": "https://dl.espressif.com/dl/idf-exe-v1.0.1.zip"
|
||||
"sha256": "93d45466cd2c86231f0693a60f68833db7bc63da17e876b2a64298a8869b916f",
|
||||
"size": 7223,
|
||||
"url": "https://dl.espressif.com/dl/idf-exe-v1.0.2.zip"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
@@ -1,13 +1,13 @@
|
||||
cmake_minimum_required(VERSION 3.5)
|
||||
project(idfexe)
|
||||
|
||||
set(VERSION 1.0.1)
|
||||
set(VERSION 1.0.2)
|
||||
set(ARCHIVE_NAME idf-exe-v${VERSION}.zip)
|
||||
|
||||
add_executable(idf idf_main.c)
|
||||
target_compile_definitions(idf PRIVATE -DVERSION=\"${VERSION}\")
|
||||
set_target_properties(idf PROPERTIES C_STANDARD 99)
|
||||
target_link_libraries(idf "-lshlwapi")
|
||||
target_link_libraries(idf "shlwapi")
|
||||
|
||||
if(CMAKE_BUILD_TYPE STREQUAL Release)
|
||||
add_custom_command(TARGET idf
|
||||
|
@@ -1,16 +1,8 @@
|
||||
// Copyright 2019 Espressif Systems (Shanghai) PTE LTD
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at",
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2019-2021 Espressif Systems (Shanghai) CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
#include <windows.h>
|
||||
#include <shlwapi.h>
|
||||
@@ -19,7 +11,11 @@
|
||||
|
||||
#define LINESIZE 1024
|
||||
|
||||
#ifdef __GNUC__
|
||||
static void fail(LPCSTR message, ...) __attribute__((noreturn));
|
||||
#else
|
||||
__declspec(noreturn) static void fail(LPCSTR message, ...);
|
||||
#endif
|
||||
|
||||
static void fail(LPCSTR message, ...)
|
||||
{
|
||||
@@ -66,7 +62,7 @@ int main(int argc, LPTSTR argv[])
|
||||
LPCTSTR idfpy_script_name = TEXT("idf.py");
|
||||
|
||||
/* Get IDF_PATH */
|
||||
TCHAR idf_path[LINESIZE] = {};
|
||||
TCHAR idf_path[LINESIZE] = { 0 };
|
||||
if (GetEnvironmentVariable(TEXT("IDF_PATH"), idf_path, sizeof(idf_path)) == 0) {
|
||||
DWORD err = GetLastError();
|
||||
if (err == ERROR_ENVVAR_NOT_FOUND) {
|
||||
@@ -76,13 +72,13 @@ int main(int argc, LPTSTR argv[])
|
||||
}
|
||||
}
|
||||
|
||||
/* Prepare the command line: python.exe %IDF_PATH%\\tools\idf.py <rest of the args> */
|
||||
TCHAR cmdline[LINESIZE] = {};
|
||||
StringCchCat(cmdline, sizeof(cmdline), TEXT("python.exe "));
|
||||
/* Prepare the command line: python.exe "%IDF_PATH%\\tools\idf.py" <rest of the args> */
|
||||
TCHAR cmdline[LINESIZE] = { 0 };
|
||||
StringCchCat(cmdline, sizeof(cmdline), TEXT("python.exe \""));
|
||||
StringCchCat(cmdline, sizeof(cmdline), idf_path);
|
||||
StringCchCat(cmdline, sizeof(cmdline), TEXT("\\tools\\"));
|
||||
StringCchCat(cmdline, sizeof(cmdline), idfpy_script_name);
|
||||
StringCchCat(cmdline, sizeof(cmdline), TEXT(" "));
|
||||
StringCchCat(cmdline, sizeof(cmdline), TEXT("\" "));
|
||||
for (int i = 1; i < argc; ++i) {
|
||||
StringCchCat(cmdline, sizeof(cmdline), argv[i]);
|
||||
StringCchCat(cmdline, sizeof(cmdline), TEXT(" "));
|
||||
|
Reference in New Issue
Block a user