diff options
| author | BELHADJ SALEM Talel <bhstalel@gmail.com> | 2023-10-16 18:11:53 +0100 |
|---|---|---|
| committer | Steve Sakoman <steve@sakoman.com> | 2023-10-25 04:51:01 -1000 |
| commit | 8de77fdcbb6e80f6722cb01efe53da0724f148ec (patch) | |
| tree | 6266a47e5646f8c78e853e4a400201ce96804d40 /documentation | |
| parent | 0041bad3a52ef9d888a0c6b2e52e7de5d28844bf (diff) | |
| download | poky-8de77fdcbb6e80f6722cb01efe53da0724f148ec.tar.gz | |
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: 1bf0ac5c208d2d9609649bae681f37e3b4281c63)
Signed-off-by: Talel BELHAJSALEM <bhstalel@gmail.com>
Reviewed-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Diffstat (limited to 'documentation')
| -rw-r--r-- | documentation/ref-manual/variables.rst | 42 |
1 files changed, 36 insertions, 6 deletions
diff --git a/documentation/ref-manual/variables.rst b/documentation/ref-manual/variables.rst index 59fd1b70ae..0e11ab2f68 100644 --- a/documentation/ref-manual/variables.rst +++ b/documentation/ref-manual/variables.rst | |||
| @@ -5925,13 +5925,11 @@ system and gives an overview of their function and contents. | |||
| 5925 | omit any argument you like but must retain the separating commas. The | 5925 | omit any argument you like but must retain the separating commas. The |
| 5926 | order is important and specifies the following: | 5926 | order is important and specifies the following: |
| 5927 | 5927 | ||
| 5928 | #. Extra arguments that should be added to the configure script | 5928 | #. Extra arguments that should be added to :term:`PACKAGECONFIG_CONFARGS` |
| 5929 | argument list (:term:`EXTRA_OECONF` or | 5929 | if the feature is enabled. |
| 5930 | :term:`PACKAGECONFIG_CONFARGS`) if | ||
| 5931 | the feature is enabled. | ||
| 5932 | 5930 | ||
| 5933 | #. Extra arguments that should be added to :term:`EXTRA_OECONF` or | 5931 | #. Extra arguments that should be added to :term:`PACKAGECONFIG_CONFARGS` |
| 5934 | :term:`PACKAGECONFIG_CONFARGS` if the feature is disabled. | 5932 | if the feature is disabled. |
| 5935 | 5933 | ||
| 5936 | #. Additional build dependencies (:term:`DEPENDS`) | 5934 | #. Additional build dependencies (:term:`DEPENDS`) |
| 5937 | that should be added if the feature is enabled. | 5935 | that should be added if the feature is enabled. |
| @@ -5989,6 +5987,38 @@ system and gives an overview of their function and contents. | |||
| 5989 | 5987 | ||
| 5990 | PACKAGECONFIG:append:pn-recipename = " f4" | 5988 | PACKAGECONFIG:append:pn-recipename = " f4" |
| 5991 | 5989 | ||
| 5990 | Consider the following example of a :ref:`ref-classes-cmake` recipe with a systemd service | ||
| 5991 | in which :term:`PACKAGECONFIG` is used to transform the systemd service | ||
| 5992 | into a feature that can be easily enabled or disabled via :term:`PACKAGECONFIG`:: | ||
| 5993 | |||
| 5994 | example.c | ||
| 5995 | example.service | ||
| 5996 | CMakeLists.txt | ||
| 5997 | |||
| 5998 | The ``CMakeLists.txt`` file contains:: | ||
| 5999 | |||
| 6000 | if(WITH_SYSTEMD) | ||
| 6001 | install(FILES ${PROJECT_SOURCE_DIR}/example.service DESTINATION /etc/systemd/systemd) | ||
| 6002 | endif(WITH_SYSTEMD) | ||
| 6003 | |||
| 6004 | In order to enable the installation of ``example.service`` we need to | ||
| 6005 | ensure that ``-DWITH_SYSTEMD=ON`` is passed to the ``cmake`` command | ||
| 6006 | execution. Recipes that have ``CMakeLists.txt`` generally inherit the | ||
| 6007 | :ref:`ref-classes-cmake` class, that runs ``cmake`` with | ||
| 6008 | :term:`EXTRA_OECMAKE`, which :term:`PACKAGECONFIG_CONFARGS` will be | ||
| 6009 | appended to. Now, knowing that :term:`PACKAGECONFIG_CONFARGS` is | ||
| 6010 | automatically filled with either the first or second element of | ||
| 6011 | :term:`PACKAGECONFIG` flag value, the recipe would be like:: | ||
| 6012 | |||
| 6013 | inherit cmake | ||
| 6014 | PACKAGECONFIG = "systemd" | ||
| 6015 | PACKAGECONFIG[systemd] = "-DWITH_SYSTEMD=ON,-DWITH_SYSTEMD=OFF" | ||
| 6016 | |||
| 6017 | A side note to this recipe is to check if ``systemd`` is in fact the used :term:`INIT_MANAGER` | ||
| 6018 | or not:: | ||
| 6019 | |||
| 6020 | PACKAGECONFIG = "${@'systemd' if d.getVar('INIT_MANAGER') == 'systemd' else ''}" | ||
| 6021 | |||
| 5992 | :term:`PACKAGECONFIG_CONFARGS` | 6022 | :term:`PACKAGECONFIG_CONFARGS` |
| 5993 | A space-separated list of configuration options generated from the | 6023 | A space-separated list of configuration options generated from the |
| 5994 | :term:`PACKAGECONFIG` setting. | 6024 | :term:`PACKAGECONFIG` setting. |
