diff options
Diffstat (limited to 'documentation/ref-manual/classes.rst')
-rw-r--r-- | documentation/ref-manual/classes.rst | 74 |
1 files changed, 0 insertions, 74 deletions
diff --git a/documentation/ref-manual/classes.rst b/documentation/ref-manual/classes.rst index 7c2b4fb278..748f0395c2 100644 --- a/documentation/ref-manual/classes.rst +++ b/documentation/ref-manual/classes.rst | |||
@@ -1143,80 +1143,6 @@ The :ref:`ref-classes-gzipnative` class enables the use of different native vers | |||
1143 | ``gzip`` and ``pigz`` rather than the versions of these tools from the | 1143 | ``gzip`` and ``pigz`` rather than the versions of these tools from the |
1144 | build host. | 1144 | build host. |
1145 | 1145 | ||
1146 | .. _ref-classes-icecc: | ||
1147 | |||
1148 | ``icecc`` | ||
1149 | ========= | ||
1150 | |||
1151 | The :ref:`ref-classes-icecc` class supports | ||
1152 | `Icecream <https://github.com/icecc/icecream>`__, which facilitates | ||
1153 | taking compile jobs and distributing them among remote machines. | ||
1154 | |||
1155 | The class stages directories with symlinks from ``gcc`` and ``g++`` to | ||
1156 | ``icecc``, for both native and cross compilers. Depending on each | ||
1157 | configure or compile, the OpenEmbedded build system adds the directories | ||
1158 | at the head of the ``PATH`` list and then sets the ``ICECC_CXX`` and | ||
1159 | ``ICECC_CC`` variables, which are the paths to the ``g++`` and ``gcc`` | ||
1160 | compilers, respectively. | ||
1161 | |||
1162 | For the cross compiler, the class creates a ``tar.gz`` file that | ||
1163 | contains the Yocto Project toolchain and sets ``ICECC_VERSION``, which | ||
1164 | is the version of the cross-compiler used in the cross-development | ||
1165 | toolchain, accordingly. | ||
1166 | |||
1167 | The class handles all three different compile stages (i.e native, | ||
1168 | cross-kernel and target) and creates the necessary environment | ||
1169 | ``tar.gz`` file to be used by the remote machines. The class also | ||
1170 | supports SDK generation. | ||
1171 | |||
1172 | If :term:`ICECC_PATH` is not set in your | ||
1173 | ``local.conf`` file, then the class tries to locate the ``icecc`` binary | ||
1174 | using ``which``. If :term:`ICECC_ENV_EXEC` is set | ||
1175 | in your ``local.conf`` file, the variable should point to the | ||
1176 | ``icecc-create-env`` script provided by the user. If you do not point to | ||
1177 | a user-provided script, the build system uses the default script | ||
1178 | provided by the recipe :oe_git:`icecc-create-env_0.1.bb | ||
1179 | </openembedded-core/tree/meta/recipes-devtools/icecc-create-env/icecc-create-env_0.1.bb>`. | ||
1180 | |||
1181 | .. note:: | ||
1182 | |||
1183 | This script is a modified version and not the one that comes with | ||
1184 | ``icecream``. | ||
1185 | |||
1186 | If you do not want the Icecream distributed compile support to apply to | ||
1187 | specific recipes or classes, you can ask them to be ignored by Icecream | ||
1188 | by listing the recipes and classes using the | ||
1189 | :term:`ICECC_RECIPE_DISABLE` and | ||
1190 | :term:`ICECC_CLASS_DISABLE` variables, | ||
1191 | respectively, in your ``local.conf`` file. Doing so causes the | ||
1192 | OpenEmbedded build system to handle these compilations locally. | ||
1193 | |||
1194 | Additionally, you can list recipes using the | ||
1195 | :term:`ICECC_RECIPE_ENABLE` variable in | ||
1196 | your ``local.conf`` file to force ``icecc`` to be enabled for recipes | ||
1197 | using an empty :term:`PARALLEL_MAKE` variable. | ||
1198 | |||
1199 | Inheriting the :ref:`ref-classes-icecc` class changes all sstate signatures. | ||
1200 | Consequently, if a development team has a dedicated build system that | ||
1201 | populates :term:`SSTATE_MIRRORS` and they want to | ||
1202 | reuse sstate from :term:`SSTATE_MIRRORS`, then all developers and the build | ||
1203 | system need to either inherit the :ref:`ref-classes-icecc` class or nobody should. | ||
1204 | |||
1205 | At the distribution level, you can inherit the :ref:`ref-classes-icecc` class to be | ||
1206 | sure that all builders start with the same sstate signatures. After | ||
1207 | inheriting the class, you can then disable the feature by setting the | ||
1208 | :term:`ICECC_DISABLED` variable to "1" as follows:: | ||
1209 | |||
1210 | INHERIT_DISTRO:append = " icecc" | ||
1211 | ICECC_DISABLED ??= "1" | ||
1212 | |||
1213 | This practice | ||
1214 | makes sure everyone is using the same signatures but also requires | ||
1215 | individuals that do want to use Icecream to enable the feature | ||
1216 | individually as follows in your ``local.conf`` file:: | ||
1217 | |||
1218 | ICECC_DISABLED = "" | ||
1219 | |||
1220 | .. _ref-classes-image: | 1146 | .. _ref-classes-image: |
1221 | 1147 | ||
1222 | ``image`` | 1148 | ``image`` |