diff options
author | Brad King <brad.king@kitware.com> | 2024-02-16 17:15:23 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2024-02-19 15:40:41 (GMT) |
commit | b81464144468e930acc5bf55243dbb0a0f3ae0fb (patch) | |
tree | 56bc4f5bb8ab2910da9735fae25901fae0fcf77b /Help/prop_tgt | |
parent | 67de5b7b82c6f61c5d349c70de81dde58bb79dd1 (diff) | |
download | CMake-b81464144468e930acc5bf55243dbb0a0f3ae0fb.zip CMake-b81464144468e930acc5bf55243dbb0a0f3ae0fb.tar.gz CMake-b81464144468e930acc5bf55243dbb0a0f3ae0fb.tar.bz2 |
VS: Add [CMAKE_]VS_USE_DEBUG_LIBRARIES options to control UseDebugLibraries
This indicates to MSBuild which configurations are considered debug
configurations. This is useful for reference both by humans and tools.
Issue: #25327
Diffstat (limited to 'Help/prop_tgt')
-rw-r--r-- | Help/prop_tgt/VS_USE_DEBUG_LIBRARIES-PURPOSE.txt | 18 | ||||
-rw-r--r-- | Help/prop_tgt/VS_USE_DEBUG_LIBRARIES.rst | 27 |
2 files changed, 45 insertions, 0 deletions
diff --git a/Help/prop_tgt/VS_USE_DEBUG_LIBRARIES-PURPOSE.txt b/Help/prop_tgt/VS_USE_DEBUG_LIBRARIES-PURPOSE.txt new file mode 100644 index 0000000..8d3714e --- /dev/null +++ b/Help/prop_tgt/VS_USE_DEBUG_LIBRARIES-PURPOSE.txt @@ -0,0 +1,18 @@ +Indicate to :ref:`Visual Studio Generators` what configurations are considered +debug configurations. This controls the ``UseDebugLibraries`` setting in +each configuration of a ``.vcxproj`` file. + +The "Use Debug Libraries" setting in Visual Studio projects, despite its +specific-sounding name, is a general-purpose indicator of what configurations +are considered debug configurations. In standalone projects, this may affect +MSBuild's default selection of MSVC runtime library, optimization flags, +runtime checks, and similar settings. In CMake projects those settings are +typically generated explicitly based on the project's specification, e.g., +the MSVC runtime library is controlled by |MSVC_RUNTIME_LIBRARY|. However, +the ``UseDebugLibraries`` indicator is useful for reference by both humans +and tools, and may also affect the behavior of platform-specific SDKs. + +Set |VS_USE_DEBUG_LIBRARIES| to a true or false value to indicate whether +each configuration is considered a debug configuration. The value may also +be the empty string (``""``) in which case no ``UseDebugLibraries`` will be +added explicitly by CMake, and MSBuild will use its default value, ``false``. diff --git a/Help/prop_tgt/VS_USE_DEBUG_LIBRARIES.rst b/Help/prop_tgt/VS_USE_DEBUG_LIBRARIES.rst new file mode 100644 index 0000000..78ad36a --- /dev/null +++ b/Help/prop_tgt/VS_USE_DEBUG_LIBRARIES.rst @@ -0,0 +1,27 @@ +VS_USE_DEBUG_LIBRARIES +---------------------- + +.. versionadded:: 3.30 + +.. |VS_USE_DEBUG_LIBRARIES| replace:: ``VS_USE_DEBUG_LIBRARIES`` +.. |MSVC_RUNTIME_LIBRARY| replace:: :prop_tgt:`MSVC_RUNTIME_LIBRARY` + +.. include:: VS_USE_DEBUG_LIBRARIES-PURPOSE.txt + +Use :manual:`generator expressions <cmake-generator-expressions(7)>` +for per-configuration specification. For example, the code: + +.. code-block:: cmake + + add_executable(foo foo.c) + set_property(TARGET foo PROPERTY + VS_USE_DEBUG_LIBRARIES "$<CONFIG:Debug,Custom>") + +indicates that target ``foo`` considers its "Debug" and "Custom" +configurations to be debug configurations, and its other configurations +to be non-debug configurations. + +The property is initialized from the value of the +:variable:`CMAKE_VS_USE_DEBUG_LIBRARIES` variable, if it is set. +If the property is not set, then CMake does not generate any +``UseDebugLibraries`` indicator. |