Commit Graph

69262 Commits

Author SHA1 Message Date
Matthew Woehlke
63c96e76f9 cmPackageInfoReader: Fix default configurations
Fix two minor issues with how default configurations are set from CPS
packages. First, imported configurations were (appropriately) being
converted to upper case, but default configurations weren't. Second,
default configurations were being set only after importing components
from the root package configuration file, resulting in configurations
specified in the root file preceding the default configurations.
2025-03-13 14:27:58 -04: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
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
Brad King
bc51d06814 CMake 4.0.0-rc3 2025-03-05 09:08:59 -05:00
Brad King
48b437418b Merge topic 'license-rst' into release-4.0
cbc54536b7 ci: Forward our dedicated license file to CPack packaging steps

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10426
2025-03-05 09:08:12 -05:00
Brad King
cbc54536b7 ci: Forward our dedicated license file to CPack packaging steps
This was missed in commit a9190bd38d (CMake: Prepare dedicated license
file for our own CPack configuration, 2025-03-02).
2025-03-05 09:01:37 -05:00
Brad King
6017ac8f38 Merge topic 'ninja-many-subdirs' into release-4.0
5a36d0c9e7 Ninja: Fix regression with a large number of subdirectories
a30cf4a66a Tests/RunCMake/Configure: Split ninja-specific RerunCMake case

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10420
2025-03-05 08:22:25 -05:00
Brad King
581182e8f5 Merge topic 'license-rst' into release-4.0
00b6a4b592 bootstrap: Update copyright line extraction for reST markup in LICENSE.rst

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10425
2025-03-05 08:20:52 -05:00
Brad King
00b6a4b592 bootstrap: Update copyright line extraction for reST markup in LICENSE.rst
Since commit 8d83487e60 (CONTRIBUTORS: Factor contributors list out of
license file, 2025-03-02) the copyright line has reStructuredText
markup.  Filter it out of the copyright line printed by `bootstrap`.
2025-03-05 06:48:39 -05:00
Ben Boeckel
5a36d0c9e7 Ninja: Fix regression with a large number of subdirectories
Since commit f50fb77a4f (Ninja: Regenerate when test or install scripts
are missing, 2024-10-29, v4.0.0-rc1~516^2) the list of paths we pass to
`ninja -t restat` scales with the number of project subdirectories.
Run it in blocks to avoid "command line too long" errors, particularly
on Windows.

Fixes: #26738
2025-03-04 13:37:01 -05:00
Brad King
a30cf4a66a Tests/RunCMake/Configure: Split ninja-specific RerunCMake case
Split the test case from commit f50fb77a4f (Ninja: Regenerate when test
or install scripts are missing, 2024-10-29, v4.0.0-rc1~516^2) into a
dedicated case.
2025-03-04 17:46:31 +01:00
Brad King
fb8872653c Merge topic 'license-rst' into release-4.0
a9bcf09edd CONTRIBUTORS: Update per-contributor hyperlinks

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10419
2025-03-04 09:40:41 -05:00
Brad King
a9bcf09edd CONTRIBUTORS: Update per-contributor hyperlinks
In commit 2f852580fb (CONTRIBUTORS: Improve formatting of
per-contributor hyperlinks, 2025-03-02) we accidentally added `mailto:`
on a few URLs that should use `https://` instead.

Reported-by: Rolf Eike Beer <eb@emlix.com>
2025-03-04 08:57:03 -05:00
Brad King
455f2249bc Merge topic 'fix-cps-component-documentation' into release-4.0
76e11bd4ea Help: Fix find_package documentation about CPS and COMPONENTS

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !10405
2025-03-04 08:45:06 -05:00
Brad King
2dac61ce26 Merge topic 'license-rst' into release-4.0
2f852580fb CONTRIBUTORS: Improve formatting of per-contributor hyperlinks
8d83487e60 CONTRIBUTORS: Factor contributors list out of license file
1fd8a2be4d LICENSE: Clarify role of copyright in contributions
de273b2e11 LICENSE: Replace references to Copyright.txt with LICENSE.rst
2d42a5444f LICENSE: Rename Copyright.txt to LICENSE.rst
5317564894 Copyright.txt: Add contributor section headers
834c9236e4 Copyright.txt: Remove excess indentation
afeca383d6 Copyright.txt: Drop outdated content around copyright notice line
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Acked-by: Alex <leha-bot@yandex.ru>
Merge-request: !10416
2025-03-04 08:38:09 -05:00
Brad King
2f852580fb CONTRIBUTORS: Improve formatting of per-contributor hyperlinks 2025-03-03 09:56:17 -05:00
Brad King
8d83487e60 CONTRIBUTORS: Factor contributors list out of license file
It is more conventional to list contributors in a dedicated file.
Also drop the long out-of-date sponsorship section.
2025-03-03 09:56:17 -05:00
Brad King
1fd8a2be4d LICENSE: Clarify role of copyright in contributions 2025-03-03 09:56:17 -05:00
Kitware Robot
de273b2e11 LICENSE: Replace references to Copyright.txt with LICENSE.rst
```
git grep -lz 'Copyright.txt or https://cmake.org/licensing ' |
  while IFS= read -r -d $'\0' f ; do
    sed -i '/Copyright.txt or https:\/\/cmake.org\/licensing / {
              s/Copyright.txt/LICENSE.rst/
            }' "$f" ; done
```
2025-03-03 09:56:07 -05:00
Brad King
2d42a5444f LICENSE: Rename Copyright.txt to LICENSE.rst
The name `LICENSE` is now more conventional.
Format as reStructuredText to improve rendering.
2025-03-03 09:55:56 -05:00
Brad King
5317564894 Copyright.txt: Add contributor section headers 2025-03-03 08:59:09 -05:00
Brad King
834c9236e4 Copyright.txt: Remove excess indentation 2025-03-03 08:59:09 -05:00
Brad King
afeca383d6 Copyright.txt: Drop outdated content around copyright notice line
The modern convention for BSD 3-Clause license notices does not
include the name of the project or "All rights reserved".
2025-03-03 08:59:09 -05:00
Konstantin Podsvirov
97eb4ee966 Copyright.txt: Update email
Backport commit 953daaac85 (Copyright.txt: Update email, 2025-02-25).
2025-03-03 08:59:09 -05:00
Brad King
a9190bd38d CMake: Prepare dedicated license file for our own CPack configuration
The CPack WIX Generator requires a `.txt` file extension.
Provide that regardless of the actual license file extension.
2025-03-03 08:59:09 -05:00
Brad King
759cd843db CMake: De-duplicate references to license file 2025-03-03 08:59:09 -05:00
Brad King
3035ee4ff3 CMake: De-duplicate extraction of copyright line from license file 2025-03-03 08:59:09 -05:00
Brad King
068ea4bfc1 cmake-gui: Update credits in About dialog to reflect status quo 2025-03-03 08:59:08 -05:00
Brad King
7b1e57e6ac Merge topic 'Help-CMAKE_LANG_LINK_MODE-clarify_usage' into release-4.0
b0d0a8d54f Help: CMAKE_LANG_LINK_MODE: clarify usage.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10411
2025-03-03 08:57:47 -05:00
Brad King
3def90f841 Merge topic 'cpack-rpm-weak-deps' into release-4.0
283a48403f CPack/RPM: Fix detection of RPM support for weak dependencies
ab4e74ad0b CPack/RPM: Remove redundant conditions for presence of rpmbuild

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10403
2025-03-03 08:56:54 -05:00
Brad King
636a12ff6b Merge topic 'update-kwsys' into release-4.0
547c42b294 Merge branch 'upstream-KWSys' into update-kwsys
25ea535aba KWSys 2025-03-01 (1d82baee)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Alex <leha-bot@yandex.ru>
Merge-request: !10408
2025-03-03 08:52:27 -05:00
Marc Chevrier
b0d0a8d54f Help: CMAKE_LANG_LINK_MODE: clarify usage. 2025-03-02 13:57:30 +01:00
Brad King
547c42b294 Merge branch 'upstream-KWSys' into update-kwsys
# By KWSys Upstream
* upstream-KWSys:
  KWSys 2025-03-01 (1d82baee)
2025-03-01 10:06:13 -05:00
KWSys Upstream
25ea535aba KWSys 2025-03-01 (1d82baee)
Code extracted from:

    https://gitlab.kitware.com/utils/kwsys.git

at commit 1d82baee88db598a77d9b1a07f7a5fb9b1860f83 (master).

Upstream Shortlog
-----------------

leha-bot (1):
      1079929c Status: Fix encoding of error strings on Windows
2025-03-01 10:06:13 -05:00
Brad King
283a48403f CPack/RPM: Fix detection of RPM support for weak dependencies
Add a missing `find_program` call to populate `RPM_EXECUTABLE`.
This was left out of two previous changes that intended to query
the `rpm` executable:

* In commit 9b53eca317 (CPack/RPM: Fix weak dep support, 2021-06-29,
  v3.21.0-rc2~4^2), without `RPM_EXECUTABLE` the query always failed,
  so we were concluding that weak dependencies are not supported even
  when they are.

* In commit 488de6294a (CPack: correctly perform querytags on old
  versions of RPM, 2025-01-09, v4.0.0-rc1~182^2~3), without
  `RPM_EXECUTABLE` the query always failed.  This change has not
  yet been in a release anyway.

Also fix the test case for the "suggests" field to verify this.

Issue: #22350
Reported-by: Balazs Kosaras <balazskosaras@gmail.com>
2025-02-28 17:24:44 -05:00
Brad King
ab4e74ad0b CPack/RPM: Remove redundant conditions for presence of rpmbuild
If `rpmbuild` is missing, error out early.

While at it, drop unfinished `alien` support.
2025-02-28 17:06:47 -05:00
Matthew Woehlke
76e11bd4ea Help: Fix find_package documentation about CPS and COMPONENTS
The recent addition of component handling for CPS neglected to update
the documentation of how find_package handles component requests when
importing from CPS. Make those changes now.
2025-02-28 17:00:00 -05:00
Brad King
62321f299c Merge topic 'cpack-rpm-docs' into release-4.0
7ae85338ca CPack/RPM: Normalize documentation wording about quoting requirements

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10402
2025-02-28 16:21:31 -05:00
Balazs Kosaras
7ae85338ca CPack/RPM: Normalize documentation wording about quoting requirements
The phrase "requires string" refers to the RPM `Requires` tag, but it
had been copied from the description of `CPACK_RPM_PACKAGE_REQUIRES`
without adjusting the text.
2025-02-28 12:06:39 -05:00
Brad King
39d0fd2203 Merge topic 'rel-sunos' into release-4.0
5dd973f900 ci: Convert sunos packaging jobs to build sunos-{x86_64,sparc64} binaries
fd1907e50e Utilities/Release: Convert base images to build sunos-{x86_64,sparc64}

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10401
2025-02-28 11:09:47 -05:00
Brad King
369b9623a4 Merge branch 'release-3.31' into release-4.0 2025-02-28 11:05:24 -05:00
Brad King
9b86715ca9 Merge topic 'test-RunCMake-ld--warn-rwx-segments' into release-4.0
5c7224bdff Tests: Teach RunCMake to ignore GNU ld --warn-rwx-segments warnings

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10398
2025-02-28 11:04:57 -05:00
Brad King
fea3aa9760 Merge topic 'test-RunCMake-ld--warn-rwx-segments' into release-3.31
5c7224bdff Tests: Teach RunCMake to ignore GNU ld --warn-rwx-segments warnings

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10398
2025-02-28 11:04:07 -05:00
Brad King
5dd973f900 ci: Convert sunos packaging jobs to build sunos-{x86_64,sparc64} binaries 2025-02-27 16:35:09 -05:00
Brad King
fd1907e50e Utilities/Release: Convert base images to build sunos-{x86_64,sparc64} 2025-02-27 16:35:09 -05:00
Brad King
5c7224bdff Tests: Teach RunCMake to ignore GNU ld --warn-rwx-segments warnings
GNU ld 2.39 added warnings of the form

    ld: warning: %pB has a LOAD segment with RWX permissions

They appear when linking test binaries on `hppa` and `sparc`.

Debian-Issue: https://bugs.debian.org/1098956
Debian-Issue: https://bugs.debian.org/1098970
2025-02-27 09:02:52 -05:00
Brad King
4972938b7d CMake 4.0.0-rc2 2025-02-25 10:56:02 -05:00
Brad King
24ccafab4f Merge topic 'libuv-kvm-bsd-dependency-removal' into release-4.0
4f0fb73816 libuv: Remove kvm dependency for all BSDs except NetBSD

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10385
2025-02-25 09:44:39 -05:00
Brad King
d0144bfbf7 Merge topic 'instrumentation-quote-command' into release-4.0
4e7b37cad3 instrumentation: Quote command arguments to preserve separation
99cd4d979b CTest: Fix startTime in test snippets when using instrumentation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !10386
2025-02-25 09:38:50 -05:00
Roger Leigh
4f0fb73816 libuv: Remove kvm dependency for all BSDs except NetBSD
This dependency is not expressed in upstream libuv.  It was added to
CMake by commit 6a497bb0a3 (libuv: Link with kvm on FreeBSD, 2016-09-08,
v3.7.0-rc1~143^2~1).  It is needed only on NetBSD.

Fixes: #26722
2025-02-24 14:31:28 -05:00