Lines Matching +full:in +full:- +full:application
7 out configurations during application development. This page explains how to
10 All Kconfig options can be searched in the :ref:`Kconfig search page
11 <kconfig-search>`.
25 - A visible symbol is a symbol defined with a prompt. Visible symbols show
26 up in the interactive configuration interfaces (hence *visible*), and can be
27 set in configuration files.
31 .. code-block:: kconfig
37 The symbol is shown like this in ``menuconfig``, where it can be toggled:
39 .. code-block:: none
43 - An *invisible* symbol is a symbol without a prompt. Invisible symbols are
44 not shown in the interactive configuration interfaces, and users have no
50 .. code-block:: kconfig
57 In this case, ``CPU_HAS_FPU`` is enabled through other symbols having
61 Setting symbols in configuration files
64 Visible symbols can be configured by setting them in configuration files. The
66 board with application settings, usually from :file:`prj.conf`. See
67 :ref:`initial-conf` below for more details.
69 Assignments in configuration files use this syntax:
71 .. code-block:: cfg
81 .. code-block:: cfg
90 .. code-block:: cfg
94 This is the format you will see in the merged configuration
95 saved to :file:`zephyr/.config` in the build directory.
99 ``n``-valued symbols correspond to unset variables simplifies tests in Make.
103 .. code-block:: cfg
110 .. code-block:: cfg
114 Assignments in configuration files are only respected if the dependencies for
118 :kbd:`/`), or look up the symbol in the :ref:`Kconfig search page
119 <kconfig-search>`.
122 .. _initial-conf:
127 The initial configuration for an application comes from merging configuration
130 1. A ``BOARD``-specific configuration file stored in
135 3. The application configuration
137 The application configuration can come from the sources below (each file is
142 #. If ``CONF_FILE`` is set, the configuration file(s) specified in it are
143 merged and used as the application configuration. ``CONF_FILE`` can be set
144 in various ways:
146 1. In :file:`CMakeLists.txt`, before calling ``find_package(Zephyr)``
148 2. By passing ``-DCONF_FILE=<conf file(s)>``, either directly or via ``west``
154 :file:`boards/<BOARD>_<build>.conf` exists in same folder as file
156 :file:`boards/<BOARD>_<build>.conf` is used - note that this feature is
157 deprecated, :ref:`application-file-suffixes` should be used instead.
159 #. Otherwise, if :file:`boards/<BOARD>.conf` exists in the application
164 :file:`boards/<BOARD>_<revision>.conf` exists in the application
168 #. Otherwise, :file:`prj.conf` is used from the application configuration
176 All configuration files will be taken from the application's configuration
180 a file in a Zephyr module can be referred by escaping the Zephyr module dir
181 variable like this ``\${ZEPHYR_<module>_MODULE_DIR}/<path-to>/<file>``
182 when setting any of said variables in the application's :file:`CMakeLists.txt`.
184 See :ref:`Application Configuration Directory <application-configuration-directory>`
185 on how the application configuration directory is defined.
187 If a symbol is assigned both in :file:`<BOARD>_defconfig` and in the
188 application configuration, the value set in the application configuration takes
191 The merged configuration is saved to :file:`zephyr/.config` in the build
194 As long as :file:`zephyr/.config` exists and is up-to-date (is newer than any
195 ``BOARD`` and application configuration files), it will be used in preference
197 configuration that gets modified when making changes in the :ref:`interactive
207 This is valuable when you want a symbol specific to an application or subsystem
218 .. code-block:: kconfig
225 string "Sub-foo"
233 two symbols in sync, unless the value of the tracking symbol is changed in a
236 .. code-block:: kconfig
254 configure invisible symbols. This is done in
260 Assignments in :file:`.config` files have no effect on invisible symbols,
263 Assigning values in :file:`Kconfig.defconfig` relies on defining a Kconfig
264 symbol in multiple locations. As an example, say we want to set ``FOO_WIDTH``
267 .. code-block:: kconfig
272 To do this, we extend the definition of ``FOO_WIDTH`` as follows, in
275 .. code-block:: kconfig
289 explained in :ref:`kconfig_shorthands`.
291 ``default`` values in :file:`Kconfig.defconfig` files have priority over
297 Note that conditions from surrounding top-level ``if``\ s are propagated to
304 ---------------------------
306 When a symbol is defined in multiple locations, each definition acts as an
309 for **ANY** definition result in the symbol resolving to ``y``, the symbol
311 symbol more restrictive by defining it in multiple locations.
316 .. code-block:: none
328 symbol without any dependencies will result in the symbol always being
329 assignable. The definition below will result in ``FOO`` always being
332 .. code-block:: kconfig
347 symbol's direct dependencies in one of the :ref:`interactive configuration
354 --------------------------------------
357 ``BOARD``-specific settings configurable in the interactive configuration
359 all symbols would have to be visible, as values given in
362 Having fixed settings be user-configurable would clutter up the configuration
366 When dealing with fixed board-specific settings, also consider whether they
367 should be handled via :ref:`devicetree <dt-guide>` instead.
371 -------------------
375 1. By setting one of the choice symbols to ``y`` in a configuration file.
383 application :file:`prj.conf` file.
385 2. By changing the ``default`` of the choice in :file:`Kconfig.defconfig`.
388 choice in multiple locations. For this to work, the choice must have a name.
393 .. code-block:: kconfig
410 .. code-block:: kconfig
417 the choice might not be satisfied. In that case, you're setting the default
428 (at the top of the file) goes over how symbol values are calculated in detail.