[cmake-developers] Shared libraries
REIX, Tony
tony.reix at atos.net
Tue Aug 21 12:20:44 EDT 2018
Hi Chuck,
Thanks for the information.
We launch cmake on MariaDB code with:
-DBUILD_SHARED_LIBS=true
Moreover, here are the few places in MariaDB code where BUILD_SHARED_LIBS appears:
# grep -R BUILD_SHARED_LIBS *
CMakeCache.txt:BUILD_SHARED_LIBS:UNINITIALIZED=true
pcre/CMakeLists.txt:# IF(NOT BUILD_SHARED_LIBS)
pcre/CMakeLists.txt:# ENDIF(NOT BUILD_SHARED_LIBS)
pcre/CMakeLists.txt:# MESSAGE(STATUS " Build shared libs ............... : ${BUILD_SHARED_LIBS}")
plugin/aws_key_management/CMakeLists.txt: -DBUILD_SHARED_LIBS=OFF
What does the first line means ?
Thx/Regards,
Cordialement,
Tony Reix
tony.reix at atos.net
ATOS / Bull SAS
ATOS Expert
IBM Coop Architect & Technical Leader
Office : +33 (0) 4 76 29 72 67
1 rue de Provence - 38432 Échirolles - France
www.atos.net<https://mail.ad.bull.net/owa/redir.aspx?C=PvphmPvCZkGrAgHVnWGsdMcDKgzl_dEIsM6rX0g4u4v8V81YffzBGkWrtQeAXNovd3ttkJL8JIc.&URL=http%3a%2f%2fwww.atos.net%2f>
________________________________
De : Chuck Atkins <chuck.atkins at kitware.com>
Envoyé : mardi 21 août 2018 18:02
À : REIX, Tony
Cc : CMake Developers
Objet : Re: [cmake-developers] Shared libraries
Hi Tony,
I expect what your seeing is likely the result of how MaraiaDBhas specifically implemented their CMake build. The only builtin CMake variable to control this is BUILD_SHARED_LIBS, which when set to "ON" changes the behavior of add_library(foo) to be add_library(foo SHARED), instead of the default add_library(foo STATIC). The other BUILD_STATIC_LIBS and DISABLE_SHARED are variables are not builtin to CMake and are part of however they have chosen to implement their build.
CMake builds are typically designed to produce a single configuration, i.e. shared release or static debug, etc. Often, however, because to have the flexibility to do otherwise. projects will try to instead implement a build that produces several configurations in a single pass. It seems this is what MariaDB has done and as such the variables to control it will be unique and specific to that project and how they've decided to implement it.
----------
Chuck Atkins
Staff R&D Engineer, Scientific Computing
Kitware, Inc.
On Thu, Aug 9, 2018 at 12:23 PM REIX, Tony <tony.reix at atos.net<mailto:tony.reix at atos.net>> wrote:
Hi,
On AIX, when building MongoC 1.11, cmake 3.11.4 generates lib*.so files and lib*.a files which contain .o files.
On AIX, we should get libraries lib*.a containing the lib*.so file.
I've tried to use:
-DBUILD_SHARED_LIBS=ON \
-DBUILD_STATIC_LIBS=OFF \
-DCMAKE_C_CREATE_SHARED_LIBRARY=ON \
-DCMAKE_CXX_CREATE_SHARED_LIBRARY=ON
and I see that, for MariaDB, someone has tried with:
-DDISABLE_SHARED=OFF
None seems to work.
Which CMake variable should I use for asking CMAKE to generate shared libraries rather than static ones: lib*.a file containing .so files rather than .o files.
Thanks
Cordialement,
Tony Reix
tony.reix at atos.net<mailto:tony.reix at atos.net>
ATOS / Bull SAS
ATOS Expert
IBM Coop Architect & Technical Leader
Office : +33 (0) 4 76 29 72 67
1 rue de Provence - 38432 Échirolles - France
www.atos.net<https://mail.ad.bull.net/owa/redir.aspx?C=PvphmPvCZkGrAgHVnWGsdMcDKgzl_dEIsM6rX0g4u4v8V81YffzBGkWrtQeAXNovd3ttkJL8JIc.&URL=http%3a%2f%2fwww.atos.net%2f>
--
Powered by www.kitware.com<http://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-developers
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://cmake.org/pipermail/cmake-developers/attachments/20180821/b0849135/attachment-0001.html>
More information about the cmake-developers
mailing list