From fb14a54a2555f65595f81cd3c702f21b74947926 Mon Sep 17 00:00:00 2001 From: Craig Scott Date: Thu, 22 Feb 2024 10:33:21 +1100 Subject: Help: Advise calling option(BUILD_SHARED_LIBS) early enough Amends 01e33df83f (Help: Modernize BUILD_SHARED_LIBS documentation, 2024-02-21) to highlight that BUILD_SHARED_LIBS needs to be set early enough to prevent different behavior between the first and subsequent runs. --- Help/variable/BUILD_SHARED_LIBS.rst | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Help/variable/BUILD_SHARED_LIBS.rst b/Help/variable/BUILD_SHARED_LIBS.rst index dbb08f7..0e80f42 100644 --- a/Help/variable/BUILD_SHARED_LIBS.rst +++ b/Help/variable/BUILD_SHARED_LIBS.rst @@ -32,3 +32,12 @@ often create a cache entry for it using the :command:`option` command: option(BUILD_SHARED_LIBS "Build using shared libraries" ON) This provides a switch that users can control, e.g., with :option:`cmake -D`. +If adding such an option to the project, do so in the top level +``CMakeLists.txt`` file, before any :command:`add_library` calls. +Note that if bringing external dependencies directly into the build, such as +with :module:`FetchContent` or a direct call to :command:`add_subdirectory`, +and one of those dependencies has such a call to +:command:`option(BUILD_SHARED_LIBS ...)