Reason for deprecation of GenerateExportHeader ?

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Reason for deprecation of GenerateExportHeader ?

Jean-Michaël Celerier
Hello,

the documentation page  https://cmake.org/cmake/help/v3.11/module/GenerateExportHeader.html has the mention : 

> This function is deprecated. Set the target properties CXX_VISIBILITY_PRESET and VISIBILITY_INLINES_HIDDEN instead.

Why is that so ? I don't know any library that would export either all or none of its symbols ; functions & types of the public API must always be chosen manually by the author of the library anyways. The only use of CXX_VISIBILITY_PRESET is to set the visibility to hidden by default, so that code can then use the export macros defined by the generate_export _ header code to make specific symbols visible.

Best,
Jean-Michaël

-------
Jean-Michaël Celerier

--

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
https://cmake.org/mailman/listinfo/cmake
Reply | Threaded
Open this post in threaded view
|

Re: Reason for deprecation of GenerateExportHeader ?

Hendrik Sattler


Am 8. Juni 2018 22:38:06 MESZ schrieb "Jean-Michaël Celerier" <[hidden email]>:

>Hello,
>
>the documentation page
>https://cmake.org/cmake/help/v3.11/module/GenerateExportHeader.html has
>the
>mention :
>
>> This function is deprecated. Set the target properties
>CXX_VISIBILITY_PRESET and VISIBILITY_INLINES_HIDDEN instead.
>
>Why is that so ? I don't know any library that would export either all
>or
>none of its symbols ; functions & types of the public API must always
>be
>chosen manually by the author of the library anyways. The only use of
>CXX_VISIBILITY_PRESET is to set the visibility to hidden by default, so
>that code can then use the export macros defined by the generate_export
>_
>header code to make specific symbols visible.

The deprecation only refers to the ADD_COMPILER_EXPORT_FLAGS, not the whole module.


>Best,
>Jean-Michaël
>
>-------
>Jean-Michaël Celerier
>http://www.jcelerier.name
--

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
https://cmake.org/mailman/listinfo/cmake