This change has no impact because the incorrect XML is technically
valid and the Fortran VS extension ignores the ProjectGUID attribute
anyway.
Fixes: #11437
- Added some minor descriptions and include() to examples
- The second example extended also with option() as it is very common
usage in CMake to enable IPO conditionally
Since commit 622596c6b2 (cmSystemTools: Re-implement
ToNormalizedPathOnDisk without translation map, 2024-10-30,
v4.0.0-rc1~528^2~5) we normalize input paths, while resolving symlinks
only if followed by `..` components, by using `cm::PathResolver`'s
`LogicalPath` mode. However, that approach assumes POSIX semantics for
resolving paths with symlinks and is incorrect on Windows.
On Windows, file system operations naively remove any component
preceding `..` regardless of whether it is a symlink. Prior to the
above commit, `ToNormalizedPathOnDisk` matched that behavior using
`CollapseFullPath` followed by `GetActualCaseForPath`. Restore it using
`cm::PathResolver`'s `CasePath` mode.
Issue: #26750
In CMake 3.31 and below, `CollapseFullPath` did this on Windows. KWSys
has since stopped looking up the on-disk case in `CollapseFullPath` to
avoid disk access when most callers only need an in-memory operation.
We currently call `GetActualCaseForPath` explicitly when needed.
Add a mode to `cm::PathResolver` to combine these operations and cache
disk access behind the `System::ReadName` callback. We will use this to
restore the way CMake 3.31 and below normalized input paths on Windows.
Issue: #26750
Issue: #20214
UsewxWidgets:
- Module description updated according to current code
- Mention of the link_libraries() command removed as it was always
commented out and never used in this specific module file
- Added example, how to use IMPORTED target of the found package instead
of this module - preparing it for deprecation in the future
Use_wxWindows:
- Mention of the UsewxWidgets module removed
- The STATUS message changed to DEPRECATION and message simplified
e9c494005c cmake-gui: Fix regression that prints an incidental error on fresh build trees
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10429
e9c494005c cmake-gui: Fix regression that prints an incidental error on fresh build trees
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10429
e9c494005c cmake-gui: Fix regression that prints an incidental error on fresh build trees
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10429
e9c494005c cmake-gui: Fix regression that prints an incidental error on fresh build trees
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10429
This displays the library name in the result message instead of the
include directory. In cases where the include directory is /usr/include
is a bit less informative compared to a library name. For example,
/usr/lib/x86_64-linux-gnu/libsqlite3.so
Update wording added by commit 6e5ccabe9b (Genex: Update
$<TARGET_FILE_BASE_NAME:...>: take care of POSTFIX, 2019-04-25,
v3.15.0-rc1~175^2) to associate references to the `<CONFIG>_POSTFIX`
properties with references to the `OUTPUT_NAME` properties because
they are both used together. Avoid association with the `PDB_NAME`
properties because they cause `<CONFIG>_POSTFIX` to be ignored.
Since commit a872844908 (cmake-gui: Handle relative paths in the build
directory text input, 2024-04-24, v3.30.0-rc1~5^2), `cmake-gui` gave an
incidental error message even when a valid build directory was being
passed. Fix this by checking for a non-empty path before using it.
Fixes: #26744
Since commit 774fcbe49c (CTest: Base command line mode on top of
scripting commands, 2024-10-05, v4.0.0-rc1~653^2) we drive dashboard
client steps through `cmCTestHandlerCommand::ExecuteHandlerCommand`
instead of calling `ProcessHandler` directly. This requires the
`BuildDirectory` to be known to establish a work directory.
Fixes: #26743
Co-authored-by: Brad King <brad.king@kitware.com>
The change in commit 79ca546ed2 (Add generator expression support to
PDB_OUTPUT_DIRECTORY target property, 2018-05-17, v3.12.0-rc1~65^2)
added genex support for `COMPILE_PDB_OUTPUT_DIRECTORY` too, but it
was not documented.
Fixes: #26745
Modify how CMake handles required components of a CPS transitive
dependency to not pass them as COMPONENTS if a CMake-script package is
found as the resolved dependency. This is necessary as many CMake-script
package description files do not treat component requests as target
requests (which, in CPS-land, they effectively are), but do implement
logic to mark themselves 'not found' if requested components are
missing. As a result, passing in the required targets as required
components is likely to cause the dependency to be spuriously not found
if it is only available via a CMake-script package configuration file.
Fix this by introducing a new 'required targets' concept, and by passing
CPS component requirements as both required targets and optional
components. The latter serves as a hint for packages that might provide
only a subset of themselves. The former is used to post-validate a
CMake-script package, or is folded on-the-fly into required components
when considering CPS packages.
Note that this functionality is not exposed to the user at this time,
and is only used when resolving transitive dependencies for a CPS
package.