ref-manual: Fix PACKAGECONFIG term and add an example

PACKAGECONFIG's first and second flag value will be added to PACKAGECONFIG_CONFARGS
and then it will be added to the appropriate variable (EXTRA_OECMAKE, or ...)
So we need to only mention PACKAGECONFIG_CONFARGS and it will lead to other variables.

I added a custom example that can help understanding very well PACKAGECONFIG.

(From yocto-docs rev: 7f26b0c0a08d6be9810128369265b0c494e7191b)

Signed-off-by: Talel BELHAJSALEM <bhstalel@gmail.com>
Reviewed-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
BELHADJ SALEM Talel 2023-10-16 18:11:53 +01:00 committed by Richard Purdie
parent cd9114c412
commit f70a86b27e

View File

@ -6064,13 +6064,11 @@ system and gives an overview of their function and contents.
omit any argument you like but must retain the separating commas. The omit any argument you like but must retain the separating commas. The
order is important and specifies the following: order is important and specifies the following:
#. Extra arguments that should be added to the configure script #. Extra arguments that should be added to :term:`PACKAGECONFIG_CONFARGS`
argument list (:term:`EXTRA_OECONF` or if the feature is enabled.
:term:`PACKAGECONFIG_CONFARGS`) if
the feature is enabled.
#. Extra arguments that should be added to :term:`EXTRA_OECONF` or #. Extra arguments that should be added to :term:`PACKAGECONFIG_CONFARGS`
:term:`PACKAGECONFIG_CONFARGS` if the feature is disabled. if the feature is disabled.
#. Additional build dependencies (:term:`DEPENDS`) #. Additional build dependencies (:term:`DEPENDS`)
that should be added if the feature is enabled. that should be added if the feature is enabled.
@ -6128,6 +6126,38 @@ system and gives an overview of their function and contents.
PACKAGECONFIG:append:pn-recipename = " f4" PACKAGECONFIG:append:pn-recipename = " f4"
Consider the following example of a :ref:`ref-classes-cmake` recipe with a systemd service
in which :term:`PACKAGECONFIG` is used to transform the systemd service
into a feature that can be easily enabled or disabled via :term:`PACKAGECONFIG`::
example.c
example.service
CMakeLists.txt
The ``CMakeLists.txt`` file contains::
if(WITH_SYSTEMD)
install(FILES ${PROJECT_SOURCE_DIR}/example.service DESTINATION /etc/systemd/systemd)
endif(WITH_SYSTEMD)
In order to enable the installation of ``example.service`` we need to
ensure that ``-DWITH_SYSTEMD=ON`` is passed to the ``cmake`` command
execution. Recipes that have ``CMakeLists.txt`` generally inherit the
:ref:`ref-classes-cmake` class, that runs ``cmake`` with
:term:`EXTRA_OECMAKE`, which :term:`PACKAGECONFIG_CONFARGS` will be
appended to. Now, knowing that :term:`PACKAGECONFIG_CONFARGS` is
automatically filled with either the first or second element of
:term:`PACKAGECONFIG` flag value, the recipe would be like::
inherit cmake
PACKAGECONFIG = "systemd"
PACKAGECONFIG[systemd] = "-DWITH_SYSTEMD=ON,-DWITH_SYSTEMD=OFF"
A side note to this recipe is to check if ``systemd`` is in fact the used :term:`INIT_MANAGER`
or not::
PACKAGECONFIG = "${@'systemd' if d.getVar('INIT_MANAGER') == 'systemd' else ''}"
:term:`PACKAGECONFIG_CONFARGS` :term:`PACKAGECONFIG_CONFARGS`
A space-separated list of configuration options generated from the A space-separated list of configuration options generated from the
:term:`PACKAGECONFIG` setting. :term:`PACKAGECONFIG` setting.