diff options
author | Kyle Edwards <kyle.edwards@kitware.com> | 2022-08-26 13:55:33 -0400 |
---|---|---|
committer | Kyle Edwards <kyle.edwards@kitware.com> | 2022-08-26 13:55:33 -0400 |
commit | b2d07c3297d1890b79f05e4d4b8ea6bf262d553b (patch) | |
tree | 9336fc3da4b63ea8d5b89dd1039caa99855bef9d | |
parent | bbda95e7bde9e97d1d03322c6a54e89871045a3b (diff) | |
download | cmake-b2d07c3297d1890b79f05e4d4b8ea6bf262d553b.tar.gz |
Help: Clarify that the order of -C and -D arguments matters
-rw-r--r-- | Help/manual/OPTIONS_BUILD.txt | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/Help/manual/OPTIONS_BUILD.txt b/Help/manual/OPTIONS_BUILD.txt index 4220dc0dbf..94adac8616 100644 --- a/Help/manual/OPTIONS_BUILD.txt +++ b/Help/manual/OPTIONS_BUILD.txt @@ -45,6 +45,25 @@ This option may also be given as a single argument: ``-D<var>:<type>=<value>`` or ``-D<var>=<value>``. + It's important to note that the order of ``-C`` and ``-D`` arguments is + significant. They will be carried out in the order they are listed, with the + last argument taking precedence over the previous ones. For example, if you + specify ``-DCMAKE_BUILD_TYPE=Debug``, followed by a ``-C`` argument with a + file that calls: + + .. code-block:: cmake + + set(CMAKE_BUILD_TYPE "Release" CACHE STRING "" FORCE) + + then the ``-C`` argument will take precedence, and ``CMAKE_BUILD_TYPE`` will + be set to ``Release``. However, if the ``-D`` argument comes after the ``-C`` + argument, it will be set to ``Debug``. + + If a ``set(... CACHE ...)`` call in the ``-C`` file does not use ``FORCE``, + and a ``-D`` argument sets the same variable, the ``-D`` argument will take + precedence regardless of order because of the nature of non-``FORCE`` + ``set(... CACHE ...)`` calls. + .. option:: -U <globbing_expr> Remove matching entries from CMake ``CACHE``. |