<div dir="ltr"><div class="gmail_default" style="font-family:monospace,monospace;font-size:small"><br>Hi,<br>ECM's KDECompilerSettings.cmake contains:<br><br> # Default to hidden visibility for symbols<br> set(CMAKE_CXX_VISIBILITY_PRESET hidden)<br> set(CMAKE_VISIBILITY_INLINES_HIDDEN 1)<br><br></div><div class="gmail_default" style="font-family:monospace,monospace;font-size:small">This raises a warning [1] for CMake 3.3+ and ignores this. <br></div><div class="gmail_default" style="font-family:monospace,monospace;font-size:small">Don't we want to set the old policy CMP0063 for now?<br></div><div class="gmail_default" style="font-family:monospace,monospace;font-size:small">Or even prepare for removal of CMP0063 (see [2])?<br></div><div class="gmail_default" style="font-family:monospace,monospace;font-size:small">I know, that would not be very soon.<br></div><div class="gmail_default" style="font-family:monospace,monospace;font-size:small"><br></div><div class="gmail_default" style="font-family:monospace,monospace;font-size:small"><br>[1] share/ECM/modules/ECMAddTests.cmake:97 (add_executable): <br> Policy CMP0063 is not set: Honor visibility properties for all target <br> types. Run "cmake --help-policy CMP0063" for policy details. Use the <br> cmake_policy command to set the policy and suppress this warning. <br><br> Target "PluginsTest" of type "EXECUTABLE" has the following visibility <br> properties set for CXX: <br><br> CXX_VISIBILITY_PRESET <br> VISIBILITY_INLINES_HIDDEN <br><br> For compatibility CMake is not honoring them for this target. <br><br><br><br>[2]<br clear="all"></div><div class="gmail_default" style="font-family:monospace,monospace;font-size:small">CMP0063<br>-------<br><br>Honor visibility properties for all target types.<br><br>The ``<LANG>_VISIBILITY_PRESET`` and<br>``VISIBILITY_INLINES_HIDDEN`` target properties affect visibility<br>of symbols during dynamic linking. When first introduced these properties<br>affected compilation of sources only in shared libraries, module libraries,<br>and executables with the ``ENABLE_EXPORTS`` property set. This<br>was sufficient for the basic use cases of shared libraries and executables<br>with plugins. However, some sources may be compiled as part of static<br>libraries or object libraries and then linked into a shared library later.<br>CMake 3.3 and above prefer to honor these properties for sources compiled<br>in all target types. This policy preserves compatibility for projects<br>expecting the properties to work only for some target types.<br><br>The ``OLD`` behavior for this policy is to ignore the visibility properties<br>for static libraries, object libraries, and executables without exports.<br>The ``NEW`` behavior for this policy is to honor the visibility properties<br>for all target types.<br><br>This policy was introduced in CMake version 3.3. CMake version<br>3.3.0 warns when the policy is not set and uses ``OLD`` behavior. Use<br>the ``cmake_policy()`` command to set it to ``OLD`` or ``NEW``<br>explicitly.<br><br>.. note::<br> The ``OLD`` behavior of a policy is<br> ``deprecated by definition``<br> and may be removed in a future version of CMake.<br></div><br>-- <br><div class="gmail_signature">regards, Jaroslaw Staniek<br><br>KDE:<br>: A world-wide network of software engineers, artists, writers, translators<br>: and facilitators committed to Free Software development - <a href="http://kde.org" target="_blank">http://kde.org</a><br>Calligra Suite:<br>: A graphic art and office suite - <a href="http://calligra.org" target="_blank">http://calligra.org</a><br>Kexi:<br>: A visual database apps builder - <a href="http://calligra.org/kexi" target="_blank">http://calligra.org/kexi</a><br>Qt Certified Specialist:<br>: <a href="http://www.linkedin.com/in/jstaniek" target="_blank">http://www.linkedin.com/in/jstaniek</a></div>
</div>