While attempting to build for the musca_s1, with mcuboot, on Windows, the build failed very late and brought up a Code Writer window on my screen.
I nailed it down to no "PYTHON_EXECUTABLE" being defined while processing bl2/ext/mcuboot/CMakeLists.txt, which caused the build line to just attempt to run wrapper.py, with no interpreter, and windows brought up the appropriate tools to write python code.
Adding "-DPYTHON_EXECUTABLE=python" to the cmake line fixed that, but it seems that this shouldn't be needed. The build tools should handle this, or?
There is a line: #! /usr/bin/env python3
in wrapper.py, and I assume linux will handle this appropriately, but it doesn't seem windows does.
Cheers, Thomas
Hi Thomas,
In cmake, there are two ways to tell it to execute the file with python.
1. Set it explicitly in the cmake file like:
COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/scripts/assemble.py
Cmake will call ${PYTHON_EXECUTABLE} to execute the .py file.
1. Do not set the tool explicitly and the .py file starts with #! /usr/bin/env python3 In this way, the following command still works in linux:
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/scripts/assemble.py But it cannot work on windows as the python path set within the .py file is a linux path.
In the bl2/ext/mcuboot/CMakeLists.txt file, it set the tool explicitly with ${PYTHON_EXECUTABLE}. But the variable ${PYTHON_EXECUTABLE} is empty. The reason is that in this file, it searches the Python3 packge. So the Python3_EXECUTABLE is set with the python path after https://git.trustedfirmware.org/TF-M/trusted-firmware-m.git/tree/bl2/ext/mcu.... Instead of ${PYTHON_EXECUTABLE}. So in fact, way 2 is used in this file. But as explains in way 2, the python path is a Linux path. So it works on Linux and does not work on Windows.
To solve this issue, the {PYTHON_EXECUTABLE should be replaced by Python3_EXECUTABLE in this file. I will create a patch to fix it later.
Regards, Sherry Zhang
From: TF-M tf-m-bounces@lists.trustedfirmware.org On Behalf Of Thomas Törnblom via TF-M Sent: Thursday, October 28, 2021 7:25 PM To: tf-m@lists.trustedfirmware.org Subject: [TF-M] BL2 builds, no "PYTHON_EXECUTABLE" defined
While attempting to build for the musca_s1, with mcuboot, on Windows, the build failed very late and brought up a Code Writer window on my screen.
I nailed it down to no "PYTHON_EXECUTABLE" being defined while processing bl2/ext/mcuboot/CMakeLists.txt, which caused the build line to just attempt to run wrapper.py, with no interpreter, and windows brought up the appropriate tools to write python code.
Adding "-DPYTHON_EXECUTABLE=python" to the cmake line fixed that, but it seems that this shouldn't be needed. The build tools should handle this, or?
There is a line: #! /usr/bin/env python3
in wrapper.py, and I assume linux will handle this appropriately, but it doesn't seem windows does.
Cheers, Thomas --
Thomas Törnblom, Product Engineer IAR Systems AB Box 23051, Strandbodgatan 1 SE-750 23 Uppsala, SWEDEN Mobile: +46 76 180 17 80 Fax: +46 18 16 78 01 E-mail: thomas.tornblom@iar.commailto:thomas.tornblom@iar.com Website: www.iar.comhttp://www.iar.com Twitter: www.twitter.com/iarsystemshttp://www.twitter.com/iarsystems
tf-m@lists.trustedfirmware.org