mirror of
https://github.com/espressif/esp-idf.git
synced 2025-12-16 04:22:22 +00:00
bugfix: Fix windows path case sensitivity
This commit fixes an issue where paths on Windows are case insensitive, for instance when setting the build folder its name would be converted to lowercase. The culprit is our realpath() function, that was calling os.path.normcase() internally, since we are removing that call it makes sense to just remove the function entirely and call os.path.realpath() wherever necessary. Closes https://github.com/espressif/esp-idf/issues/10282
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD
|
||||
# SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
import asyncio
|
||||
import os
|
||||
@@ -37,16 +37,6 @@ def executable_exists(args: List) -> bool:
|
||||
return False
|
||||
|
||||
|
||||
def realpath(path: str) -> str:
|
||||
"""
|
||||
Return the cannonical path with normalized case.
|
||||
|
||||
It is useful on Windows to comparision paths in case-insensitive manner.
|
||||
On Unix and Mac OS X it works as `os.path.realpath()` only.
|
||||
"""
|
||||
return os.path.normcase(os.path.realpath(path))
|
||||
|
||||
|
||||
def _idf_version_from_cmake() -> Optional[str]:
|
||||
version_path = os.path.join(os.environ['IDF_PATH'], 'tools/cmake/version.cmake')
|
||||
regex = re.compile(r'^\s*set\s*\(\s*IDF_VERSION_([A-Z]{5})\s+(\d+)')
|
||||
@@ -502,10 +492,10 @@ def ensure_build_directory(args: 'PropertyDict', prog_name: str, always_run_cmak
|
||||
|
||||
try:
|
||||
home_dir = cache['CMAKE_HOME_DIRECTORY']
|
||||
if realpath(home_dir) != realpath(project_dir):
|
||||
if os.path.realpath(home_dir) != os.path.realpath(project_dir):
|
||||
raise FatalError(
|
||||
"Build directory '%s' configured for project '%s' not '%s'. Run '%s fullclean' to start again." %
|
||||
(build_dir, realpath(home_dir), realpath(project_dir), prog_name))
|
||||
(build_dir, os.path.realpath(home_dir), os.path.realpath(project_dir), prog_name))
|
||||
except KeyError:
|
||||
pass # if cmake failed part way, CMAKE_HOME_DIRECTORY may not be set yet
|
||||
|
||||
|
||||
Reference in New Issue
Block a user