diff options
author | Brad King <brad.king@kitware.com> | 2015-05-26 13:24:00 (GMT) |
---|---|---|
committer | CMake Topic Stage <kwrobot@kitware.com> | 2015-05-26 13:24:00 (GMT) |
commit | 12b9005d7c015b1f8cece5a9d8cf5f1a9f4a18fa (patch) | |
tree | e51e518ba0502ff060785f2276fd5d2347437cda /Help/policy/CMP0063.rst | |
parent | 129bf45dee4d6fc4cca8103235013b60464660f2 (diff) | |
parent | 700f1c3b2b379f2af63ba97b93348ff66069a388 (diff) | |
download | CMake-12b9005d7c015b1f8cece5a9d8cf5f1a9f4a18fa.zip CMake-12b9005d7c015b1f8cece5a9d8cf5f1a9f4a18fa.tar.gz CMake-12b9005d7c015b1f8cece5a9d8cf5f1a9f4a18fa.tar.bz2 |
Merge topic 'extend-visibility-properties'
700f1c3b Honor visibility properties for all target types (#15556)
50de5dbb Help: Format visibility property and variable documentation
771f1b00 Tests: Rename Visibility{InlinesHidden =>}
ab55b3b5 Tests: Refactor RunCMake.VisibilityPreset test setup
Diffstat (limited to 'Help/policy/CMP0063.rst')
-rw-r--r-- | Help/policy/CMP0063.rst | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/Help/policy/CMP0063.rst b/Help/policy/CMP0063.rst new file mode 100644 index 0000000..298e9c2 --- /dev/null +++ b/Help/policy/CMP0063.rst @@ -0,0 +1,26 @@ +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. |