Commit Graph

69839 Commits

Author SHA1 Message Date
Peter Kokot
457bf223e6
CMakePrintSystemInformation: Update documentation 2025-03-08 22:27:42 +01:00
Nikita Nemkin
9e581043ac VS: Fix incorrect XML in Fortran projects
This change has no impact because the incorrect XML is technically
valid and the Fortran VS extension ignores the ProjectGUID attribute
anyway.

Fixes: #11437
2025-03-09 02:15:58 +05:00
Peter Kokot
a04fd272c2
CheckIPOSupported: Update documentation
- 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
2025-03-08 22:05:05 +01:00
Kitware Robot
24a1a7ac5d CMake Nightly Date Stamp 2025-03-08 00:12:34 -05:00
Brad King
fc5584f9bb cmSystemTools: Fix regression in input path normalization on Windows
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
2025-03-07 18:26:14 -05:00
Brad King
8dfc725cdb PathResolver: Add mode to collapse paths naively and look up on-disk case
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
2025-03-07 18:22:46 -05:00
Brad King
75913fe430 PathResolver: Document in comments the on-disk case lookup on macOS
This was added by commit 08040ced86 (cmake: Look up on-disk case of
input paths on macOS, 2024-11-20, v4.0.0-rc1~390^2).  Update relevant
comments.
2025-03-07 18:14:57 -05:00
Matthew Woehlke
dd8bf95271 Help: Document handling of CPS transitive components
Add documentation explaining how CMake handles component requests of a
CPS transitive dependency.
2025-03-07 13:19:43 -05:00
Peter Kokot
c827016b10
UsewxWidgets, Use_wxWindows: Update documentation
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
2025-03-07 18:43:29 +01:00
Brad King
aab6f9f3f4 Merge topic 'patch-CTestCoverageCollectGCOV'
a76b533562 CTestCoverageCollectGCOV: Update documentation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10433
2025-03-07 12:19:27 -05:00
Brad King
5d510ae8a0 Merge topic 'genex-fix-target-pdb-base-name'
fe11677945 GenEx: Fix TARGET_PDB_FILE_BASE_NAME with PDB_NAME and DEBUG_POSTFIX
434c289f3b Help: Clarify references to <CONFIG>_POSTFIX target properties

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10431
2025-03-07 12:18:28 -05:00
Brad King
fbe6d9ed2e Merge topic 'compile-pdb-output-directory-manual-genex'
b66dbdb6f1 Help: Document COMPILE_PDB_OUTPUT_DIRECTORY genex support
6080449551 Help: Document when PDB_OUTPUT_DIRECTORY gained genex support

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10430
2025-03-07 12:17:05 -05:00
Brad King
c8074c1c43 Merge branch 'release-4.0' 2025-03-07 12:15:01 -05:00
Brad King
b5521c4358 Merge branch 'release-3.31' 2025-03-07 12:14:54 -05:00
Brad King
59a6fb839d Merge branch 'release-3.30' 2025-03-07 12:14:48 -05:00
Brad King
abee5a5068 Merge branch 'release-3.31' into release-4.0 2025-03-07 12:14:38 -05:00
Brad King
f80118609d Merge branch 'release-3.30' into release-3.31 2025-03-07 12:14:26 -05:00
Brad King
f68bd58c9f Merge topic 'cmake-gui-incidental-errors' into release-3.31
e9c494005c cmake-gui: Fix regression that prints an incidental error on fresh build trees

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10429
2025-03-07 12:14:00 -05:00
Brad King
de5749332a Merge topic 'cmake-gui-incidental-errors' into release-3.30
e9c494005c cmake-gui: Fix regression that prints an incidental error on fresh build trees

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10429
2025-03-07 12:12:42 -05:00
Brad King
eb35b2897d Merge branch 'release-4.0' 2025-03-07 12:10:18 -05:00
Brad King
4e7aed2cd2 Merge topic 'cmake-gui-incidental-errors'
e9c494005c cmake-gui: Fix regression that prints an incidental error on fresh build trees

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10429
2025-03-07 12:10:18 -05:00
Brad King
e8b7c9c975 Merge topic 'cmake-gui-incidental-errors' into release-4.0
e9c494005c cmake-gui: Fix regression that prints an incidental error on fresh build trees

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10429
2025-03-07 12:10:16 -05:00
Brad King
0b3012c367 Merge branch 'release-4.0' 2025-03-07 12:08:33 -05:00
Brad King
cdbeb7773e Merge topic 'ctest-regression'
712cb8cb14 ctest: Restore support for -T Test without dashboard configuration
e47dc29967 cmCTestStartCommand: Remove unnecessary code
f54699d31d cmCTest: De-duplicate working directory code

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !10432
2025-03-07 12:08:33 -05:00
Brad King
309bc1f332 Merge topic 'ctest-regression' into release-4.0
712cb8cb14 ctest: Restore support for -T Test without dashboard configuration
e47dc29967 cmCTestStartCommand: Remove unnecessary code
f54699d31d cmCTest: De-duplicate working directory code

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !10432
2025-03-07 12:08:31 -05:00
Kitware Robot
65f9963eb0 CMake Nightly Date Stamp 2025-03-07 00:08:17 -05:00
Peter Kokot
dc20787020
FindSQLite3: Replace REQUIRED_VARS order
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
2025-03-06 23:30:08 +01:00
Peter Kokot
d3b7f0d272
CheckInclude{FileCXX,File,Files}: Add examples
This adds some examples to modules for checking headers.
2025-03-06 23:10:28 +01:00
Peter Kokot
a76b533562
CTestCoverageCollectGCOV: Update documentation
- Added missing arguments to the function signature
- Synced some minor formatting/RST nits
- Added simplified example
2025-03-06 18:26:54 +01:00
Giacomo Rombaut
fe11677945 GenEx: Fix TARGET_PDB_FILE_BASE_NAME with PDB_NAME and DEBUG_POSTFIX
When `PDB_NAME` is explicitly set, the `<CONFIG>_POSTFIX` is not added
to the `.pdb` names.

Fixes: #26733
2025-03-06 11:40:59 -05:00
Brad King
434c289f3b Help: Clarify references to <CONFIG>_POSTFIX target properties
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.
2025-03-06 11:32:20 -05:00
Juan Ramos
e9c494005c cmake-gui: Fix regression that prints an incidental error on fresh build trees
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
2025-03-06 11:13:06 -05:00
Daniel Pfeifer
712cb8cb14 ctest: Restore support for -T Test without dashboard configuration
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>
2025-03-06 09:43:22 -05:00
Daniel Pfeifer
e47dc29967 cmCTestStartCommand: Remove unnecessary code
We called `UpdateCTestConfiguration` but set an internal option
that made it a no-op.  Instead, just do not call it.
2025-03-06 09:43:22 -05:00
Brad King
f54699d31d cmCTest: De-duplicate working directory code 2025-03-06 09:43:22 -05:00
Giacomo Rombaut
b66dbdb6f1 Help: Document COMPILE_PDB_OUTPUT_DIRECTORY genex support
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
2025-03-06 08:16:40 -05:00
Brad King
6080449551 Help: Document when PDB_OUTPUT_DIRECTORY gained genex support 2025-03-06 08:14:41 -05:00
Brad King
c2d9b5944a Merge topic 'FindGettext-remove-deprecated-msgmerge-option'
27daf26916 FindGettext: remove use of deprecated -s option

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10422
2025-03-06 08:00:38 -05:00
Brad King
3e2fd68f55 Merge topic 'patch-CTestUseLaunchers'
be9011c275 CTestUseLaunchers: Update documentation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10428
2025-03-06 07:59:30 -05:00
Brad King
3daa01884e Merge topic 'patch-DeployQt4'
5f270bfb26 DeployQt4: Update documentation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10423
2025-03-06 07:58:26 -05:00
Brad King
de7168c097 Merge topic 'remove-kfreebsd'
99c8abed55 kFreeBSD: Remove support for obsolete platform

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10410
2025-03-06 07:57:22 -05:00
Brad King
c7dbb2fe63 Merge topic 'FindPython-crosscompiling-consistency'
5c1521c54d FindPython: enforce artifacts consistency when cross-compiling

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10413
2025-03-06 07:55:31 -05:00
Brad King
11b8728e9c Merge branch 'release-4.0' 2025-03-06 07:53:27 -05:00
Brad King
d84881dce6 Merge topic 'fix-cps-cmake-deps'
c3d279841b find_package: CPS component requirements != CMake components

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !10427
2025-03-06 07:53:27 -05:00
Brad King
2b0d0b1544 Merge topic 'fix-cps-cmake-deps' into release-4.0
c3d279841b find_package: CPS component requirements != CMake components

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !10427
2025-03-06 07:53:25 -05:00
Kitware Robot
49cd9056b9 CMake Nightly Date Stamp 2025-03-06 00:07:46 -05:00
Peter Kokot
be9011c275
CTestUseLaunchers: Update documentation 2025-03-05 22:03:19 +01:00
Matthew Woehlke
c3d279841b find_package: CPS component requirements != CMake components
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.
2025-03-05 14:47:49 -05:00
Roger Leigh
99c8abed55 kFreeBSD: Remove support for obsolete platform
kFreeBSD is no longer maintained or supported and was never an
officially-supported release architecture for Debian.

Closes: #26742
2025-03-05 11:57:49 -05:00
Marc Chevrier
5c1521c54d FindPython: enforce artifacts consistency when cross-compiling
Fixes: #26696
2025-03-05 17:11:56 +01:00