CMP0182 — CMake 4.0.1-dirty Documentation

# CMP0182

Added in version 4.0.

Create shared library archives by default on AIX.

CMake 3.30 and below always represented `SHARED` library targets as plain shared object `.so` files. This is consistent with other UNIX platforms, but is not the preferred convention on AIX. CMake 3.31 added the `AIX_SHARED_LIBRARY_ARCHIVE` target property to create a shared library archive: the shared object `.so` file is placed inside an archive `.a` file. However, the behavior was disabled by default for compatibility with existing projects that do not set `AIX_SHARED_LIBRARY_ARCHIVE`.

CMake 4.0 and above prefer, when `AIX_SHARED_LIBRARY_ARCHIVE` is not set, to enable creation of shared library archives by default because it is the preferred convention on AIX. This policy provides compatibility for projects that have not been updated.

The `OLD` behavior for this policy is to disable shared library archives when `AIX_SHARED_LIBRARY_ARCHIVE` is not set. The `NEW` behavior for this policy is to enable shared library archives when `AIX_SHARED_LIBRARY_ARCHIVE` is not set.

This policy was introduced in CMake version 4.0. It may be set by `cmake_policy()` or `cmake_minimum_required()`. If it is not set, CMake does not warn, and uses `OLD` behavior.

Note

The `OLD` behavior of a policy is `deprecated by definition` and may be removed in a future version of CMake.