mirror of
https://github.com/Kitware/CMake.git
synced 2026-04-21 05:38:24 -05:00
add64399c5
Since commit c1e812ad4f (target_link_libraries: Improve tolerance of
unquoted generator expressions, 2022-02-15, v3.23.0-rc2~11^2) we
accumulate consecutive non-keyword arguments to recover an unquoted
generator expression as a single entry. When given multiple consecutive
non-genex library names, the grouping breaks our logic that expects each
entry is either a raw target name or a genex. Revise the logic to only
accumulate multiple arguments when they end inside a partial genex.
This bug caused `target_link_libraries` to stop wrapping static library
private dependencies in `$<LINK_ONLY:...>` for `INTERFACE_LINK_LIBRARIES`
when multiple consecutive library names are given. Add a test case
covering that behavior.
Fixes: #23302
CMake Tests Directory ********************* This directory contains the CMake test suite. See also the `CMake Source Code Guide`_. .. _`CMake Source Code Guide`: ../Help/dev/source.rst Many tests exist as immediate subdirectories, but some tests are organized as follows. * ``CMakeLib/``: Source code, used for tests, that links to the ``CMakeLib`` library defined over in ``Source/``. * ``CMakeOnly/``: Deprecated. Tests that run CMake to generate a project but not build it. Superseded by ``Tests/RunCMake/``. * ``Find*/``: Tests for specific find modules that can only be run on machines with the corresponding packages installed. They are enabled in ``CMakeLists.txt`` by undocumented options used on CI builds. * ``Module/``: Tests for specific CMake modules. * ``RunCMake/``: Tests that run CMake and/or other tools while precisely checking their return code and stdout/stderr content. Useful for testing error cases and diagnostic output.