From ab1d7df7575503c8eabdf6f8892b5944b06d98e5 Mon Sep 17 00:00:00 2001 From: "Joachim Wuttke (h)" Date: Sun, 4 Nov 2018 23:13:21 +0100 Subject: Help: add section on debugging generator expressions. This resolves #18550. --- Help/manual/cmake-generator-expressions.7.rst | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/Help/manual/cmake-generator-expressions.7.rst b/Help/manual/cmake-generator-expressions.7.rst index eb9c9fe..b5c4457 100644 --- a/Help/manual/cmake-generator-expressions.7.rst +++ b/Help/manual/cmake-generator-expressions.7.rst @@ -440,3 +440,25 @@ Output-Related Expressions Content of ``...`` converted to shell path style. For example, slashes are converted to backslashes in Windows shells and drive letters are converted to posix paths in MSYS shells. The ``...`` must be an absolute path. + +Debugging +========= + +Since generator expressions are evaluated during generation of the buildsystem, +and not during processing of ``CMakeLists.txt`` files, it is not possible to +inspect their result with the :command:`message()` command. + +One possible way to generate debug messages is to add a custom target, + +.. code-block:: cmake + + add_custom_target(genexdebug COMMAND ${CMAKE_COMMAND} -E echo "$<...>") + +The shell command ``make genexdebug`` (invoked after execution of ``cmake``) +would then print the result of ``$<...>``. + +Another way is to write debug messages to a file: + +.. code-block:: cmake + + file(GENERATE OUTPUT filename CONTENT "$<...>") -- cgit v0.12