Commit Graph

57756 Commits

Author SHA1 Message Date
Brad King efbbae9705 Merge topic 'update-kwsys' into release-3.24
a54f7a6983 Merge branch 'upstream-KWSys' into update-kwsys
975c44654d KWSys 2022-06-09 (9b65e88d)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7345
2022-06-10 11:11:25 -04:00
Brad King ec6d574d4a Merge topic 'ExternalProject-stamp-genex' into release-3.24
c111d440ce ExternalProject: Express per-config step stamp file paths using CONFIG genex

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7341
2022-06-10 11:10:23 -04:00
Brad King 865bc4a068 Merge topic 'CheckIPOSupported-honor-flags' into release-3.24
ec08bc1752 CheckIPOSupported: Compile check using flags of calling project

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !7343
2022-06-10 11:05:43 -04:00
Brad King d63ec8645f Merge topic 'revert-msvc-compilers-default-to-ZI' into release-3.24
7d73e88d3a MSVC: Revert "Default to -ZI instead of /Zi for x86 and x64"

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !7344
2022-06-10 10:40:05 -04:00
Brad King ec08bc1752 CheckIPOSupported: Compile check using flags of calling project
Forward `CMAKE_<LANG>_FLAGS` and `CMAKE_<LANG>_FLAGS_DEBUG` from the
calling project into the test project.  The set of flags may affect the
availability of IPO support.  Since this may change the result of the
check for existing projects, add a policy for compatibility.

This was discovered after commit 5fcadc481e (MSVC: Default to -ZI
instead of /Zi for x86 and x64, 2022-05-24) introduced policy CMP0138 to
switch our default for MSVC's debug info flag.  The `-ZI` flag is
incompatible with the `-GL` flag used for IPO, so CMP0138 was reverted
pending future work on an alternative solution.  Re-use the CMP0138
policy number for this change to CheckIPOSupported instead.

Fixes: #23607
2022-06-10 09:12:43 -04:00
Brad King a54f7a6983 Merge branch 'upstream-KWSys' into update-kwsys
# By KWSys Upstream
* upstream-KWSys:
  KWSys 2022-06-09 (9b65e88d)
2022-06-09 14:19:28 -04:00
KWSys Upstream 975c44654d KWSys 2022-06-09 (9b65e88d)
Code extracted from:

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

at commit 9b65e88d077e023f5e4e22f31bd0970e4071eb5b (master).

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

Saleem Abdulrasool (1):
      0969597d SystemTools: add a clonefile optimization on macOS
2022-06-09 14:19:27 -04:00
Brad King 7d73e88d3a MSVC: Revert "Default to -ZI instead of /Zi for x86 and x64"
Revert commit 5fcadc481e (MSVC: Default to -ZI instead of /Zi for x86
and x64, 2022-05-24).  The `-ZI` flag is incompatible with the `-GL`
flag used for IPO, and so is not an unconditionally better default.
Revert the change pending future design of a first-class setting for
MSVC debug info format that can be automatically reconciled with IPO
settings.

That commit introduced policy CMP0138, but we already have later policy
numbers used too.  Leave placeholder text to avoid policy renumbering.

Issue: #23607, #10189
2022-06-09 12:24:33 -04:00
Brad King 84da420a29 Merge topic 'vs-android-api' into release-3.24
9d6a080421 VS: Add AndroidAPILevel element to generated project files

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kyle Edwards <kyle.edwards@kitware.com>
Merge-request: !7339
2022-06-09 09:23:05 -04:00
Brad King 9d43059132 Merge topic 'doc-using-deps-guide' into release-3.24
92e93f5c9e Help: Overhaul and expand the Using Dependencies Guide

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Alex <leha-bot@yandex.ru>
Merge-request: !7332
2022-06-09 09:03:13 -04:00
Craig Scott 92e93f5c9e Help: Overhaul and expand the Using Dependencies Guide
The guide previously only focused on the find_package() command,
with a bias towards libraries. FetchContent was not mentioned at all.
Reorganise and update the existing content. Add new sections to cover
providing dependencies with FetchContent and dependency providers.
Improve discoverability of the guide by mentioning it at the beginning
of the find_package(), FetchContent and dependency provider docs.
2022-06-09 22:55:11 +10:00
Brad King c111d440ce ExternalProject: Express per-config step stamp file paths using CONFIG genex
The ExternalProject module has long used the generator-specific
placeholder in the `${CMAKE_CFG_INTDIR}` variable to express per-config
stamp file paths in multi-config generators.  Now that most generators
support generator expressions in custom command outputs, we can use
the `$<CONFIG>` genex instead.

In particular, this fixes cross-config `BUILD_BYPRODUCTS` with the Ninja
Multi-Config generator.

Fixes: #23595
2022-06-08 15:13:27 -04:00
Brad King b33b6014b2 Begin 3.24 release versioning 2022-06-08 11:59:27 -04:00
Brad King c72f3fca56 Help: Drop development topic notes to prepare release
Release versions do not have the development topic section of
the CMake Release Notes index page.
2022-06-08 11:58:33 -04:00
Brad King 868218ea28 Merge topic 'doc-3.24-relnotes'
253941634c Help: Update Sphinx versionadded directives for 3.24 release
a811489b35 Help: Organize and revise 3.24 release notes
a3fc469882 Help: Consolidate 3.24 release notes

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7338
2022-06-08 11:57:16 -04:00
Brad King aaf5353c47 Merge topic 'ci-nmc'
3ed06404bf gitlab-ci: add nightly job testing Ninja Multi-Config on Windows
e39acc2b3a gitlab-ci: add nightly job testing Ninja Multi-Config on macOS

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7337
2022-06-08 09:21:15 -04:00
Benjamín de la Fuente Ranea 9d6a080421 VS: Add AndroidAPILevel element to generated project files
Map `CMAKE_SYSTEM_VERSION` to the Android Target API Level for Visual
Studio projects.

Fixes: #22886
2022-06-08 09:17:20 -04:00
Brad King 53d3e43c37 Merge topic 'set_source_files_properties'
2a37b7fd77 Help: Fix typo with misnamed set_source_files_property() in example

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7340
2022-06-08 09:15:19 -04:00
Brad King 253941634c Help: Update Sphinx versionadded directives for 3.24 release
Run the script:

    Utilities/Sphinx/update_versions.py --since v3.23.0 --overwrite
2022-06-08 09:07:21 -04:00
Brad King a811489b35 Help: Organize and revise 3.24 release notes
Add section headers similar to the 3.23 release notes and move each
individual bullet into an appropriate section.  Revise a few bullets.
2022-06-08 09:07:21 -04:00
Dan Walsh 2a37b7fd77 Help: Fix typo with misnamed set_source_files_property() in example 2022-06-08 21:18:26 +10:00
Kitware Robot 252093c216 CMake Nightly Date Stamp 2022-06-08 00:01:17 -04:00
Brad King a3fc469882 Help: Consolidate 3.24 release notes
Run the `Utilities/Release/consolidate-relnotes.bash` script to move
notes from `Help/release/dev/*` into `Help/release/3.24.rst`.
2022-06-07 15:05:57 -04:00
Brad King 3ed06404bf gitlab-ci: add nightly job testing Ninja Multi-Config on Windows 2022-06-07 12:38:50 -04:00
Brad King e39acc2b3a gitlab-ci: add nightly job testing Ninja Multi-Config on macOS 2022-06-07 12:21:02 -04:00
Brad King 031fa14b7e Merge topic 'ci-ispc'
d14349c907 ci: Enable ISPC tests on Linux, Windows, and macOS nightly builds
49996faaac ci: remove ISPC from the Fedora CI image
3e791592ad gitlab-ci: init macOS and Windows jobs with per-CMAKE_CONFIGURATION scripts

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7336
2022-06-07 10:57:13 -04:00
Brad King 4224df9eac Merge topic 'rel-linux'
a4c48afbbc Utilities/Release: Drop unnecessary system API definitions for Linux

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7333
2022-06-07 10:56:08 -04:00
Brad King bdd44eca9b Merge topic 'print-sources'
d8dcfa7776 Tests: Add tests for CMakePrintHelpers
b7ddfcfe08 cmake_print_properties(): Update grammar docs
e52b9e1270 PrintHelpers: Document argument order restriction
d87ed4d88f PrintHelpers: Fix indentation
5fa70e1738 PrintHelpers: Rewrite a few more error messages
2579503f45 PrintHelpers: Fix target SOURCES property

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !7331
2022-06-07 10:55:29 -04:00
Brad King 4a7bb7b255 Merge topic 'FindPython-interpreter-search-strategy'
8de50bae84 FindPython*: enhance interpreter lookup

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !7330
2022-06-07 10:53:22 -04:00
Brad King cf34dfeee9 Merge topic 'tests-java-compiler-var'
fdeb237934 Tests: Use Java_JAVAC_EXECUTABLE variable consistently

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !7327
2022-06-07 10:52:24 -04:00
Brad King 3536a8a52d Merge topic 'ext_disabled'
d5014741c9 Tests/CompileFeatures: Fix CMP0128OldSameStandard with default OFF

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !7328
2022-06-07 10:51:14 -04:00
Kitware Robot 3d5402d1df CMake Nightly Date Stamp 2022-06-07 00:01:06 -04:00
Brad King d14349c907 ci: Enable ISPC tests on Linux, Windows, and macOS nightly builds 2022-06-06 17:00:07 -04:00
Brad King 49996faaac ci: remove ISPC from the Fedora CI image
Revert commit 5ece12b7e4 (gitlab-ci: add ISPC to the Fedora CI image,
2020-08-18, v3.19.0-rc1~244^2).  Later we will download ISPC in specific
jobs.

Update a `RunCMake.NinjaMultiConfig` test expectation to account for
a change to the Qt deployed on Fedora 36.
2022-06-06 16:59:25 -04:00
Brad King 3e791592ad gitlab-ci: init macOS and Windows jobs with per-CMAKE_CONFIGURATION scripts
Apply the approach from commit 747940157f (gitlab-ci: init environment
with per-CMAKE_CONFIGURATION shell scripts, 2021-03-12,
v3.21.0-rc1~480^2~4) to macOS and Windows too.
2022-06-06 13:52:30 -04:00
FeRD (Frank Dana) d8dcfa7776 Tests: Add tests for CMakePrintHelpers
Add three tests in Tests/RunCMake/PrintHelpers, meant to verify
basic functionality of the module. Tests are:

* Variables: Test the results of a cmake_print_variables()
  call on two variables set within the test script.

* Properties: Test cmake_print_properties() calls on a pair
  of SOURCES and a pair of TARGETS, printing some basic properties.

* PropertiesSources: Specifically verify the results of a
  cmake_print_properties() call for the SOURCES property of a
  TARGET. Prior to the fix introduced alongside these tests, it
  was a known bug that such a request caused a FATAL_ERROR.
2022-06-06 12:27:11 -04:00
FeRD (Frank Dana) b7ddfcfe08 cmake_print_properties(): Update grammar docs 2022-06-06 12:27:11 -04:00
FeRD (Frank Dana) e52b9e1270 PrintHelpers: Document argument order restriction 2022-06-06 12:27:11 -04:00
FeRD (Frank Dana) d87ed4d88f PrintHelpers: Fix indentation 2022-06-06 12:27:11 -04:00
FeRD (Frank Dana) 5fa70e1738 PrintHelpers: Rewrite a few more error messages 2022-06-06 12:27:09 -04:00
FeRD (Frank Dana) 2579503f45 PrintHelpers: Fix target SOURCES property
It's been a long-standing bug in CMakePrintHelpers that the
cmake_print_properties() function cannot print the SOURCES
property of a requested TARGET, confusing it with a request
to print properties of SOURCES.

We work around this by parsing the arguments in two stages,
so that a SOURCES that comes after the PROPERTIES keyword
is handled differently from a SOURCES that comes before it.

This adds the restriction that the "mode" keyword (TARGETS
SOURCES DIRECTORIES etc...) and its arguments **must** precede
the PROPERTIES keyword and its arguments. In other words:

1. Both of these are now valid and will be interpreted correctly,
   whereas previously only the first was, and the second caused
   a FATAL_ERROR:

   cmake_print_properties(SOURCES foo.c PROPERTIES LANGUAGE)
   cmake_print_properties(TARGETS foo PROPERTIES SOURCES)

2. This, OTOH, which used to be valid, no longer is, and will
   trigger a FATAL_ERROR:

   cmake_print_properties(PROPERTIES LANGUAGE SOURCES foo.c)

Fixes: #14883
2022-06-06 12:25:51 -04:00
Brad King a4c48afbbc Utilities/Release: Drop unnecessary system API definitions for Linux
We previously defined `_POSIX_C_SOURCE` and friends while building
binary packages in order to minimize the version of glibc needed at
runtime.  The definitions were added by commit facc240a45
(Utilities/Release: Add docker specs to build and test Linux binaries,
2019-08-23, v3.16.0-rc1~184^2~2), but came from older packaging scripts
that were removed by commit 689fdbfc61 (Utilities/Release: Drop linux64
script in favor of docker build, 2019-08-27, v3.16.0-rc1~184^2).  Those
older scripts were meant for use in a hand-maintained environment.  Now
that we use base images of old CentOS versions to establish the build
environment, our builds are already limited to older glibc versions
(glibc 2.12 from centos6 on x86_64, and 2.17 from centos7 on aarch64).

Our old system API definitions no longer affect the glibc version
required by the binaries.  Drop them to avoid potential conflicts with
system API definitions added by changes like commit f034b0f663 (CMake
compilation: do not use compiler extensions, 2020-03-14, v3.18.0-rc1~494^2)
and commit c7c3e39e4f (Utilities: Activate POSIX APIs even without
compiler extensions, 2022-06-02).
2022-06-06 11:44:53 -04:00
Brad King ab1edff492 Merge topic 'if-command-PATH_EQUAL'
be4b9e10af if command: Add PATH_EQUAL operator

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !7321
2022-06-06 09:47:45 -04:00
Brad King 9fdade1d6b Merge topic 'c-no-extensions'
c7c3e39e4f Utilities: Activate POSIX APIs even without compiler extensions
3ba324b6b6 libarchive: Remove a system preprocessor macro that conflicts with a local var
4a283fcc31 librhash: Explicitly enable large file support on 32-bit targets

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !7320
2022-06-06 09:46:34 -04:00
Craig Scott efe918fdba Merge topic 'doc-find_package-formatting'
afcf275cc9 Help: Fix formatting and missing cross-reference for find_package()

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7329
2022-06-06 07:09:02 -04:00
Kitware Robot 817d88571a CMake Nightly Date Stamp 2022-06-06 00:02:17 -04:00
Marc Chevrier 8de50bae84 FindPython*: enhance interpreter lookup
Fixes: #23588
2022-06-05 14:44:04 +02:00
Craig Scott afcf275cc9 Help: Fix formatting and missing cross-reference for find_package()
Amends 42f7e39789 (Find: Support per call disabling of
CMAKE_INSTALL_PREFIX, 2022-03-21)
2022-06-05 17:55:50 +10:00
Kitware Robot 2a56c24039 CMake Nightly Date Stamp 2022-06-05 00:01:12 -04:00
Raul Tambre d5014741c9 Tests/CompileFeatures: Fix CMP0128OldSameStandard with default OFF
With CMP0128 OLD compiler extensions are enabled by default regardless of the
compiler's default.
Fix the test to always check for the extension flag as it was intended to.

Fixes: 4a0485be7f (cmStandardLevelResolver: Avoid
unnecessary flags, fix unset level logic, 2021-04-29)
2022-06-04 18:40:21 +03:00