| CMP0063 |
| ------- |
| |
| Honor visibility properties for all target types. |
| |
| The :prop_tgt:`<LANG>_VISIBILITY_PRESET` and |
| :prop_tgt:`VISIBILITY_INLINES_HIDDEN` target properties affect visibility |
| of symbols during dynamic linking. When first introduced these properties |
| affected compilation of sources only in shared libraries, module libraries, |
| and executables with the :prop_tgt:`ENABLE_EXPORTS` property set. This |
| was sufficient for the basic use cases of shared libraries and executables |
| with plugins. However, some sources may be compiled as part of static |
| libraries or object libraries and then linked into a shared library later. |
| CMake 3.3 and above prefer to honor these properties for sources compiled |
| in all target types. This policy preserves compatibility for projects |
| expecting the properties to work only for some target types. |
| |
| The ``OLD`` behavior for this policy is to ignore the visibility properties |
| for static libraries, object libraries, and executables without exports. |
| The ``NEW`` behavior for this policy is to honor the visibility properties |
| for all target types. |
| |
| This policy was introduced in CMake version 3.3. CMake version |
| |release| warns when the policy is not set and uses ``OLD`` behavior. Use |
| the :command:`cmake_policy()` command to set it to ``OLD`` or ``NEW`` |
| explicitly. |
| |
| .. include:: DEPRECATED.txt |