From 0f23056836b8bef7e0a10253496d561d9769c2ce Mon Sep 17 00:00:00 2001 From: BELHADJ SALEM Talel Date: Mon, 16 Oct 2023 18:11:53 +0100 Subject: 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: 94eb37ef56cbb19b5b6e28bef522a7288a1a61f9) Signed-off-by: Talel BELHAJSALEM Reviewed-by: Michael Opdenacker Signed-off-by: Steve Sakoman --- documentation/ref-manual/variables.rst | 50 +++++++++++++++++++++++++++------- 1 file changed, 40 insertions(+), 10 deletions(-) (limited to 'documentation') diff --git a/documentation/ref-manual/variables.rst b/documentation/ref-manual/variables.rst index 0c573194e9..5d45f4a9f9 100644 --- a/documentation/ref-manual/variables.rst +++ b/documentation/ref-manual/variables.rst @@ -5548,25 +5548,23 @@ system and gives an overview of their function and contents. omit any argument you like but must retain the separating commas. The order is important and specifies the following: - 1. Extra arguments that should be added to the configure script - argument list (:term:`EXTRA_OECONF` or - :term:`PACKAGECONFIG_CONFARGS`) if - the feature is enabled. + #. Extra arguments that should be added to :term:`PACKAGECONFIG_CONFARGS` + if the feature is enabled. - 2. Extra arguments that should be added to :term:`EXTRA_OECONF` or - :term:`PACKAGECONFIG_CONFARGS` if the feature is disabled. + #. Extra arguments that should be added to :term:`PACKAGECONFIG_CONFARGS` + if the feature is disabled. - 3. Additional build dependencies (:term:`DEPENDS`) + #. Additional build dependencies (:term:`DEPENDS`) that should be added if the feature is enabled. - 4. Additional runtime dependencies (:term:`RDEPENDS`) + #. Additional runtime dependencies (:term:`RDEPENDS`) that should be added if the feature is enabled. - 5. Additional runtime recommendations + #. Additional runtime recommendations (:term:`RRECOMMENDS`) that should be added if the feature is enabled. - 6. Any conflicting (that is, mutually exclusive) :term:`PACKAGECONFIG` + #. Any conflicting (that is, mutually exclusive) :term:`PACKAGECONFIG` settings for this feature. Consider the following :term:`PACKAGECONFIG` block taken from the @@ -5613,6 +5611,38 @@ system and gives an overview of their function and contents. 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` A space-separated list of configuration options generated from the :term:`PACKAGECONFIG` setting. -- cgit v1.2.3-54-g00ecf