Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions reference/binary_model/custom_compatibility.rst
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
.. _reference_binary_model_custom_compatibility:

Customizing the binary compatibility
====================================

Expand Down
3 changes: 2 additions & 1 deletion reference/conanfile/methods/compatibility.rst
Original file line number Diff line number Diff line change
Expand Up @@ -48,4 +48,5 @@ The format of the list returned is as shown below:

.. seealso::

Read the :ref:`binary model reference<reference_binary_model>` for a full view of the Conan binary model.
- Read the :ref:`binary model reference<reference_binary_model>` for a full view of the Conan binary model.
- See more about :ref:`customizing the binary compatibility of your packages<reference_binary_model_custom_compatibility>`
12 changes: 7 additions & 5 deletions reference/extensions/binary_compatibility.rst
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ The following would be valid syntax (but not an useful or working one, as it wil
return result


Conan provides a default ``compatibility.py`` implementation that implements binary compatibility for
Conan provides a default ``compatibility.py`` that implements binary compatibility for
different ``compiler.cppstd`` and ``compiler.cstd`` values. That is, by default it assumes that binaries built with different ``cppstd``
and ``cstd`` values (for the same compiler and compiler version) are binary compatible, and can be linked together
without issues.
Expand All @@ -38,11 +38,13 @@ recipe the ``extension_properties = {"compatibility_cppstd": False}`` attribute,
From Conan 2.4, the ``compiler.cstd`` setting is available. It will only be taken into account in the computation of
packages ``package_id`` when their recipes explicitly declare the ``languages = "C"`` attribute.

Some important rules:

- The built-in ``compatibility.py`` is subject to changes in future releases. To avoid being updated
in the future, please remove the first comment ``# This file was generated by Conan.``
There are some cases where the default ``compatibility.py`` will not be enough, and users will need to
customize it to their needs. Some rules and tips for that customization are explained below.

- Importantly, the built-in ``compatibility.py`` **is subject to changes in future releases**.
To avoid being updated in the future, please remove the first comment ``# This file was generated by Conan.``
- Removing values from ``settings`` or ``options`` in the returned list is possible when they allow being unset,
by specifying the value of the item to ``None``.

.. warning::

Expand Down