Sfoglia il codice sorgente

cmake: Fix for Python files executed directly, not via PYTHON variable

A problem if the Python interpreter used for idf.py (or set via PYTHON
variable) didn't match
"/usr/bin/env python" (or the associated executable for .py files, on
Windows).

Closes https://github.com/espressif/esp-idf/issues/3160
Possibly also fix for https://github.com/espressif/esp-idf/issues/2936

Adds build system test to catch any future direct execution of Python in
the standard build process.
Renz Christian Bagaporo 7 anni fa
parent
commit
d0b2d5ec95

+ 3 - 3
components/esptool_py/project_include.cmake

@@ -5,9 +5,9 @@ endif()
 # Set some global esptool.py variables
 #
 # Many of these are read when generating flash_app_args & flash_project_args
-set(ESPTOOLPY "${CMAKE_CURRENT_LIST_DIR}/esptool/esptool.py" --chip esp32)
-set(ESPSECUREPY "${CMAKE_CURRENT_LIST_DIR}/esptool/espsecure.py")
-set(ESPEFUSEPY "${CMAKE_CURRENT_LIST_DIR}/esptool/espefuse.py")
+set(ESPTOOLPY ${PYTHON} "${CMAKE_CURRENT_LIST_DIR}/esptool/esptool.py" --chip esp32)
+set(ESPSECUREPY ${PYTHON} "${CMAKE_CURRENT_LIST_DIR}/esptool/espsecure.py")
+set(ESPEFUSEPY ${PYTHON} "${CMAKE_CURRENT_LIST_DIR}/esptool/espefuse.py")
 
 set(ESPFLASHMODE ${CONFIG_ESPTOOLPY_FLASHMODE})
 set(ESPFLASHFREQ ${CONFIG_ESPTOOLPY_FLASHFREQ})

+ 1 - 1
components/ulp/cmake/CMakeLists.txt

@@ -28,7 +28,7 @@ if(NOT as_version STREQUAL as_supported_version)
                     the toolchain, or proceed at your own risk.")
 endif()
 
-set(ULP_MAP_GEN ${IDF_PATH}/components/ulp/esp32ulp_mapgen.py)
+set(ULP_MAP_GEN ${PYTHON} ${IDF_PATH}/components/ulp/esp32ulp_mapgen.py)
 set(ULP_LD_TEMPLATE ${IDF_PATH}/components/ulp/ld/esp32.ulp.ld)
 
 get_filename_component(sdkconfig_dir ${SDKCONFIG} DIRECTORY)

+ 1 - 1
tools/cmake/ldgen.cmake

@@ -53,7 +53,7 @@ function(ldgen_process_template template output)
     # Create command to invoke the linker script generator tool.
     add_custom_command(
         OUTPUT ${output}
-        COMMAND ${IDF_PATH}/tools/ldgen/ldgen.py
+        COMMAND ${PYTHON} ${IDF_PATH}/tools/ldgen/ldgen.py
         --config    ${SDKCONFIG}
         --fragments "$<JOIN:$<TARGET_PROPERTY:ldgen,FRAGMENT_FILES>,\t>"
         --input     ${template}