Lines Matching full:modules

3 Modules (External projects)
9 system those are called *modules*. These modules must be integrated with the
14 modules, an external project is required to have its own life-cycle outside
16 contribution and maintenance workflow and release process. Zephyr modules
20 Modules to be included in the default manifest of the Zephyr project need to
27 Zephyr depends on several categories of modules, including but not limited to:
35 Additionally, in some cases modules (particularly vendor HALs) can contain
39 better organizing the workflow in Zephyr modules.
43 Modules vs west projects
46 Zephyr modules, described in this page, are not the same as :ref:`west projects
47 <west-workspace>`. In fact, modules :ref:`do not require west
48 <modules_without_west>` at all. However, when using modules :ref:`with west
49 <modules_using_west>`, then the build system uses west in order to find modules.
53 Modules are repositories that contain a :file:`zephyr/module.yml` file, so that
57 West projects are often also modules, but not always. There are west projects
59 need to be modules.
60 Modules are found by the Zephyr build system either via :ref:`west itself
64 The contents of this page only apply to modules, and not to west projects in
70 * All modules included in the default manifest shall be hosted in repositories
79 tracking external projects (hosted in Git repositories); such modules
89 * Modules should use "zephyr" as the default name for the repository main
103 * Modules should expose all provided header files with an include pathname
140 followed in all modules repositories. It is up to the module code owner
145 **Updating modules with a diff from upstream:**
149 should be applicable to all modules with the downside of suppressing the
154 The above practice is the only allowed practice in modules where
161 **Updating modules by merging the upstream branch:**
166 This approach is applicable to modules with an upstream project Git repository.
173 Contributing to Zephyr modules
244 Contributing changes to modules
260 :ref:`Submitting changes to modules <submitting_new_modules>` describes in
266 Contributing to Zephyr modules shall follow the generic project argument
282 example, bugs or enhancements in modules shall be opened in the main
288 It is allowed to file bug reports for zephyr modules to track
360 All Zephyr modules should provide some level of **integration** testing,
374 New modules, that are candidates for being included in the Zephyr
390 Deprecating and removing modules
393 Modules may be deprecated for reasons including, but not limited to:
403 Deprecated modules may be removed from the Zephyr default manifest
408 Repositories of removed modules shall remain accessible via their
412 Integrate modules in Zephyr build system
416 absolute paths to the directories containing Zephyr modules. These modules
425 modules to this list by setting the :makevar:`EXTRA_ZEPHYR_MODULES` CMake
428 useful if you want to keep the list of modules found with west and also add
436 use other Zephyr modules provided by :ref:`west <west>`.
439 If you want to permanently add modules to the zephyr workspace and you are
446 Finally, you can also specify the list of modules yourself in various ways, or
447 not use modules at all if your application doesn't need them.
492 As example, the Zephyr module located in :file:`<workspace>/modules/bar` will
531 can be extended externally with modules as needed, for example to add custom
618 Zephyr modules
626 modules. These can be used e.g. to declare dependencies from other Kconfig symbols
630 ``modules/`` in the Zephyr main tree.
690 Sysbuild modules
733 Sysbuild modules hooks
775 A Zephyr module may be dependent on other Zephyr modules to be present in order
809 files located externally to Zephyr modules.
815 files for certain known Zephyr modules.
822 └── modules
830 You can create a similar ``MODULE_EXT_ROOT`` for additional modules, and make
831 those modules known to Zephyr build system.
838 └── modules
839 ├── modules.cmake
857 ``<ZEPHYR_BASE>/modules/<module_name>`` with your own implementation your own
860 The :file:`modules.cmake` file must contain the logic that specifies the
861 integration files for Zephyr modules via specifically named CMake variables.
876 └── modules
877 ├── modules.cmake
882 and inside the :file:`modules.cmake` file, add the following content
939 for Zephyr modules, see also :ref:`modules_module_ext_root`.
967 ├── modules
973 To execute both tests and samples available in modules, the Zephyr test runner
1027 Zephyr modules can describe dependencies available from package managers,
1031 dependencies for Zephyr and present modules that leverage this feature in their
1038 Calling ``west packages pip`` lists `requirement files`_ for Zephyr and modules.
1062 build system finds all the modules in your :term:`west installation` and uses
1087 find Zephyr modules, you can set :makevar:`ZEPHYR_MODULES` yourself using one
1114 # Put this in a file with a name like "zephyr-modules.cmake"
1116 CACHE STRING "pre-cached modules")
1119 zephyr-modules.cmake`` to your CMake command line.
1121 Not using modules
1125 yourself, then no additional modules are added to the build. You will still be
1129 Submitting changes to modules
1132 When submitting new or making changes to existing modules the main repository
1149 Note that multiple and dependent changes to different modules can be submitted
1151 all modules that have a pull request against them.
1188 path: modules/lib/my_module
1198 Process for submitting changes to existing modules argument
1220 path: modules/lib/my_module