diff options
author | Brad King <brad.king@kitware.com> | 2024-02-21 18:50:09 (GMT) |
---|---|---|
committer | Kitware Robot <kwrobot@kitware.com> | 2024-02-21 18:50:31 (GMT) |
commit | 6fca88cde11df1f994156cbc9ea658ad0feda9d8 (patch) | |
tree | 03ef5070993c37a9bbb6fa9e02acd86c7b7aff78 | |
parent | df1d81d2840840be10c1d0b46d60ec56b8903fec (diff) | |
parent | 01e33df83fcd4b7ee1385086612cba4199b19f1f (diff) | |
download | CMake-6fca88cde11df1f994156cbc9ea658ad0feda9d8.zip CMake-6fca88cde11df1f994156cbc9ea658ad0feda9d8.tar.gz CMake-6fca88cde11df1f994156cbc9ea658ad0feda9d8.tar.bz2 |
Merge topic 'doc-BUILD_SHARED_LIBS' into release-3.29
01e33df83f Help: Modernize BUILD_SHARED_LIBS documentation
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9278
-rw-r--r-- | Help/variable/BUILD_SHARED_LIBS.rst | 36 |
1 files changed, 30 insertions, 6 deletions
diff --git a/Help/variable/BUILD_SHARED_LIBS.rst b/Help/variable/BUILD_SHARED_LIBS.rst index 53087b2..dbb08f7 100644 --- a/Help/variable/BUILD_SHARED_LIBS.rst +++ b/Help/variable/BUILD_SHARED_LIBS.rst @@ -1,10 +1,34 @@ BUILD_SHARED_LIBS ----------------- -Global flag to cause :command:`add_library` to create shared libraries if on. +Tell :command:`add_library` to default to ``SHARED`` libraries, +instead of ``STATIC`` libraries, when called with no explicit library type. -If present and true, this will cause all libraries to be built shared -unless the library was explicitly added as a static library. This -variable is often added to projects as an :command:`option` so that each user -of a project can decide if they want to build the project using shared or -static libraries. +Calls to :command:`add_library` without any explicit library type check +the current ``BUILD_SHARED_LIBS`` variable value. If it is true, then the +default library type is ``SHARED``. Otherwise, the default is ``STATIC``. + +For example, the code: + +.. code-block:: cmake + + add_library(example ${sources}) + +behaves as if written + +.. code-block:: cmake + + if(BUILD_SHARED_LIBS) + add_library(example SHARED ${sources}) + else() + add_library(example STATIC ${sources}) + endif() + +CMake does not define ``BUILD_SHARED_LIBS`` by default, but projects +often create a cache entry for it using the :command:`option` command: + +.. code-block:: cmake + + option(BUILD_SHARED_LIBS "Build using shared libraries" ON) + +This provides a switch that users can control, e.g., with :option:`cmake -D`. |