| CMP0169 |
| ------- |
| |
| .. versionadded:: 3.30 |
| |
| Calling :command:`FetchContent_Populate` with a single argument (the name of |
| a declared dependency) is deprecated. |
| |
| Prior to the introduction of :command:`FetchContent_MakeAvailable`, projects |
| populated previously declared content (with :command:`FetchContent_Declare`) |
| using the following pattern: |
| |
| .. code-block:: cmake |
| |
| FetchContent_GetProperties(depname) |
| if(NOT depname_POPULATED) |
| FetchContent_Populate(depname) |
| add_subdirectory(${depname_SOURCE_DIR} ${depname_BINARY_DIR}) |
| endif() |
| |
| The above pattern does not support a number of features that have been added |
| to :module:`FetchContent` over time. It ignores options like ``SYSTEM`` and |
| ``EXCLUDE_FROM_ALL`` which may be given to :command:`FetchContent_Declare`, |
| but can't be made known to the above project code. It also does not support |
| :ref:`dependency providers <dependency_providers_overview>`. |
| Projects should call :command:`FetchContent_MakeAvailable` instead of using |
| the above pattern. |
| |
| CMake 3.30 and above prefers to reject calls to |
| :command:`FetchContent_Populate` with the name of a declared dependency. |
| This policy provides compatibility for projects that have not been updated |
| to call :command:`FetchContent_MakeAvailable` instead. |
| |
| The ``OLD`` behavior of this policy allows :command:`FetchContent_Populate` |
| to be called with the name of a declared dependency. |
| The ``NEW`` behavior halts with a fatal error in such cases. |
| |
| .. note:: |
| Calling :command:`FetchContent_Populate` with the full population details |
| as command arguments rather than just a dependency name remains fully |
| supported. Only the form calling :command:`FetchContent_Populate` with a |
| single argument (the name of a previously declared dependency) is deprecated |
| with this policy. |
| |
| .. |INTRODUCED_IN_CMAKE_VERSION| replace:: 3.30 |
| .. |WARNS_OR_DOES_NOT_WARN| replace:: warns |
| .. include:: include/STANDARD_ADVICE.rst |
| |
| .. include:: include/DEPRECATED.rst |