This companion change updates the nuttx-apps CMake build to use
NuttX’s NUTTX_DIR and NUTTX_BINARY_DIR instead of CMAKE_SOURCE_DIR
and CMAKE_BINARY_DIR, which incorrectly refer to the outermost project
when NuttX is embedded via add_subdirectory(). Since apps/ is itself
included from NuttX’s top-level CMakeLists.txt, these variables were
effectively being used as references to NuttX’s root and inherited
the same bug fixed in the matching NuttX change for #19697. All
self-referencing uses are replaced while intentionally preserving
standalone projects and unrelated custom variables or hardcoded paths.
The change affects only the CMake build system, preserves normal
standalone behavior, and was tested with sim:nsh both standalone and
embedded, with apps such as hello and ostest successfully built and
available in NSH.
Fixes#19697.
Assisted-by: Claude:claude-sonnet-5
Signed-off-by: Alan Carvalho de Assis <acassis@gmail.com>
Merges build file structure so that both libteec and optee_supplicant
are under the same nuttx-app directory. This better reflects external
source repo structrure (optee_client containing both libteec and
tee-supplicant) and avoids a case where build of supplicant
was attempted before libteec, leading to a missing .zip file
(zip file was only downloaded by libteec, but order of builds was
not enforced).
Signed-off-by: George Poulios <gpoulios@census-labs.com>
Top level:
- 'tee' subdirectory added to top-level CMakeLists.txt
tee/libteec:
- BINARY_PREFIX defined PUBLIC to make it accessible to consumer
apps
- added missing DEBUGLEVEL definitions
examples/optee_gp:
- added missing dependency to libteec
Signed-off-by: George Poulios <gpoulios@census-labs.com>
Initially, leaving the .zip around seemed like a good idea to
avoid re-downloading often. But it turns out deleting downloaded
packages during distclean is standard practice and some CI
scripts depend on the git local copy being clean, including
ignored files.
Change also CMakeLists.txt to download the zip instead of the
tarball.
Signed-off-by: George Poulios <gpoulios@census-labs.com>
Support for extracting (from libteec), patching and compiling
optee_client/tee-supplicant by NuttX apps. Defaults to version
4.6.0 (same as the current libteec).
Enabled with:
CONFIG_OPTEE_SUPPLICANT=y
CONFIG_LIBTEEC=y
And the following for the nuttx kernel:
CONFIG_ALLOW_BSD_COMPONENTS=y
CONFIG_FS_ANONMAP=y
CONFIG_DEV_OPTEE_SMC=y
CONFIG_DEV_OPTEE_SUPPLICANT=y
The version of the supplicant needs to match the libteec version
since the patch to be applied might fail otherwise. If the versions
differ the build will be aborted.
More info:
- https://github.com/OP-TEE/optee_client
- https://optee.readthedocs.io/en/latest/architecture/secure_storage.html
Signed-off-by: Theodore Karatapanis <tkaratapanis@census-labs.com>