zephyr/cmake/compiler/gcc
Ederson de Souza d156a03074 cmake: New target which generates a sort of development kit for llext
Loadable extensions need access to Zephyr (and Zephyr application)
includes and some CFLAGS to be properly built. This patch adds a new
target, `llext-edk`, which generates a tar file with those includes and
flags that can be loaded from cmake and make files.

A Zephyr application willing to expose some API to extensions it loads
only need to add the include directories describing such APIs to the
Zephyr ones via zephyr_include_directories() CMake call.

A new Kconfig option, CONFIG_LLEXT_EDK_NAME allows one to control some
aspects of the generated file, which enables some customization - think
of an application called ACME, willing to have a ACME_EXTENSION_KIT or
something.

All EDK Kconfig options are behind CONFIG_LLEXT_EDK, which doesn't
depend on LLEXT directly - so that EDK features can be leveraged by
downstream variations of loadable extensions.

Also, each arch may need different compiler flags for extensions: those
are handled by the `LLEXT_CFLAGS` cmake flag. An example is set for GCC
ARM.

Finally, EDK throughout this patch means Extension Development Kit,
which is a bad name, but at least doesn't conflict with SDK.

Signed-off-by: Ederson de Souza <ederson.desouza@intel.com>
2024-05-17 16:21:48 +01:00
..
compiler_flags.cmake cmake: Fix invalid calls of set_compiler_property 2024-04-19 16:40:16 +00:00
generic.cmake cmake/compiler/: drop ERROR_QUIET when looking for compiler --version 2023-12-04 16:38:08 +00:00
target.cmake llext: move all flags to compiler specific cmake files 2024-01-21 10:59:49 +01:00
target_arc.cmake hwmv2: Introduce Hardware model version 2 and convert devices 2024-03-02 16:56:33 -05:00
target_arm.cmake cmake: New target which generates a sort of development kit for llext 2024-05-17 16:21:48 +01:00
target_arm64.cmake soc: arm64: Add agilex5 soc folder and its configurations 2023-07-25 16:58:01 +00:00
target_mips.cmake cmake: add MIPS support 2022-01-19 13:48:21 -05:00
target_riscv.cmake riscv: Introduce BitManip extensions 2022-08-29 16:57:18 +02:00
target_sparc.cmake SPARC: add FPU support 2020-12-04 14:33:43 +02:00
target_x86.cmake x86: enable soft float support for Zephyr SDK 2021-01-20 16:45:31 -05:00
target_xtensa.cmake llext: use CMake shared library support on Xtensa 2024-04-08 09:04:32 +02:00