| 12345678910111213141516171819202122232425262728293031 |
- CMP0164
- -------
- .. versionadded:: 3.30
- :command:`add_library` rejects ``SHARED`` libraries when not supported by
- the platform.
- In CMake 3.29 and below, on platforms that do not support shared libraries
- (:prop_gbl:`TARGET_SUPPORTS_SHARED_LIBS` is false), the
- :command:`add_library` command automatically converts ``SHARED`` libraries to
- ``STATIC`` libraries to help users build projects on such platforms. However,
- the semantics of shared and static libraries are different enough that such
- automatic conversion cannot work in general. Projects using shared libraries
- need to be ported to such platforms on a case-by-case basis.
- In CMake 3.30 and above, :command:`add_library` prefers to reject creation
- of shared libraries on platforms that do not support them, and fail with a
- fatal error message. This policy provides compatibility for projects that
- happened to work with the automatic conversion to static libraries and have
- not been updated with an explicit port.
- The ``OLD`` behavior for this policy is to implicitly create a static
- library with a developer warning. The ``NEW`` behavior for this policy is
- to fail.
- .. |INTRODUCED_IN_CMAKE_VERSION| replace:: 3.30
- .. |WARNS_OR_DOES_NOT_WARN| replace:: does *not* warn about the behavior change
- .. include:: include/STANDARD_ADVICE.rst
- .. include:: include/DEPRECATED.rst
|