Implements the generator expression $<PATH:MATIVE_PATH> which convert
path(s) into a native format with platform-specific slashes (``\`` on
Windows hosts and ``/`` elsewhere).
Fixes: #26515
Re-organize the "Binary Targets" section of the manual to have a
dedicated subsection for each kind of binary target. Initialize each
subsection by documenting the object file and link semantics of the
corresponding target type.
Update find_package documentation to describe (the current state of)
support for Common Package Specification packages. Make some general
improvements to the same while we're at it. Add documentation blurb for
the experimental flag that enables CPS support.
Teach find_package to search CPS search paths, and to look for CPS file
names. Modify the set of file names to also include the file type (CPS
or CMake-script). Modify the search function to allow specifying which
file type(s) to consider.
During full path search, each possible path is searched for only one of
the two possible file types. However, subsequent runs, or when
considering a user-specified path (<name>_DIR), CMake will look for both
file types.
Note that this only adds the new path search logic as described above;
CMake does not yet know how to read CPS files, and there is a high
likelihood that Bad Things will happen if it tries. However, this seemed
like a good place to checkpoint.
Improve the coding conventions specified in our source code guide:
- Recommend capitalization for locals as well as members.
- Remove exceptions for `const` placement; new code should always prefer
"east" style.
- Remove separate section; "Code Style" and "Code Conventions" are
similar enough to not need to make a distinction.
This patch makes the `Swift_MODULE_DIRECTORY` property behave more like
the other output directory properties, allowing generator expressions
and fixing the behavior with multi-config generators.
Issue: #26010
Files listed in the `VS_SOLUTION_ITEMS` directory property of a project
directory are added as solution items in the 'Solution Items' solution
directory.
If `source_group` is applied to the files listed in `VS_SOLUTION_ITEMS`,
solution groups matching the names of the source groups are created
outside of the default 'Solution Items' group. If not items are placed
into the default group, it is not created.
Solution items added to subprojects are not included in the top-level
project.
Closes: #26409
94b2d56017 Help/policy/CMP0015: Remove stray indentation
577e693d3e Help: Use standard policy advice in CMP0000
96a0cded7f Tests: Avoid enabling C unnecessarily in CMP0022 and CMP0023 cases
c941f728ec Tests/CPackComponentsForAll: Update cmake_minimum_required to 3.10
34070c3319 Tests/CMakeCommands/target_link_libraries: Fix keyword consistency
73c334677d Tests: Use latest cmake_minimum_required possible for old policy cases
cde63efaea Tests/ExternalProject: Update sample projects to require CMake 3.31
0d416ad57f Tests/PolicyScope: Use more recent policies
...
Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !10022
Teach `export()` and `install(EXPORT)` to record this setting on the
imported targets they generate. Make this property's non-presence
authoritative on imported targets since they represent what was built
elsewhere.