| .. _using-snippets: |
| |
| Using Snippets |
| ############## |
| |
| .. tip:: |
| |
| See :ref:`built-in-snippets` for a list of snippets that are provided by |
| Zephyr. |
| |
| Snippets have names. You use snippets by giving their names to the build |
| system. |
| |
| With west build |
| *************** |
| |
| To use a snippet named ``foo`` when building an application ``app``: |
| |
| .. code-block:: console |
| |
| west build -S foo app |
| |
| To use multiple snippets: |
| |
| .. code-block:: console |
| |
| west build -S snippet1 -S snippet2 [...] app |
| |
| With cmake |
| ********** |
| |
| If you are running CMake directly instead of using ``west build``, use the |
| ``SNIPPET`` variable. This is a whitespace- or semicolon-separated list of |
| snippet names you want to use. For example: |
| |
| .. code-block:: console |
| |
| cmake -Sapp -Bbuild -DSNIPPET="snippet1;snippet2" [...] |
| cmake --build build |
| |
| Application required snippets |
| ***************************** |
| |
| If an application should always be compiled with a given snippet, it |
| can be added to that application's ``CMakeLists.txt`` file. For example: |
| |
| .. code-block:: cmake |
| |
| if(NOT snippet1 IN_LIST SNIPPET) |
| set(SNIPPET snippet1 ${SNIPPET} CACHE STRING "" FORCE) |
| endif() |
| |
| find_package(Zephyr ....) |