Commit Graph

63475 Commits

Author SHA1 Message Date
Ben Boeckel ed45432571 cmNinjaTargetGenerator: do not order-depend on C++ module sources
C++ module sources should not be included by any other TUs, so their
presence cannot matter for order-only dependencies of the entire target.
Exclude them.

Update CMP0154 to take this into consideration and add tests to the
`CXXModules` suite (which already deals with module support detection).
2023-10-20 07:18:33 -04:00
Ben Boeckel 0973cd6702 cmNinjaTargetGenerator: use the file set visibility API 2023-10-19 23:09:33 -04:00
Ben Boeckel 4625170925 cmFileSet: add a query for includeable file set types 2023-10-19 23:09:33 -04:00
Ben Boeckel 51f9d9f0a2 cmNinjaTargetGenerator: avoid traversing old outputs repeatedly
We actually only need to look at outputs just added to the vector, not
all outputs that have been detected so far.
2023-10-19 23:09:33 -04:00
Brad King dec211da56 Merge topic 'doc-cmake-presets-8' into release-3.28
d3978a3835 Help: Document cmake-presets version 8

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8899
2023-10-19 11:31:54 -04:00
Johel Ernesto Guerrero Peña d3978a3835 Help: Document cmake-presets version 8
This was accidentally missed in commit f1a7179520 (presets: Add $schema
property to JSON schema, 2023-09-07, v3.28.0-rc1~106^2).
2023-10-19 09:53:48 -04:00
Brad King c2b28d4a66 CMake 3.28.0-rc2 v3.28.0-rc2 2023-10-18 13:15:13 -04:00
Brad King dc7bed55e6 Merge topic 'cxxmodules-vs-no-synthetic-targets' into release-3.28
17fd7fe2ae Tests/CXXModules: test Visual Studio synthetic target error
badb6ab120 VS: Explicitly disallow C++ modules provided by imported targets

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8895
2023-10-18 09:51:52 -04:00
Brad King c924b9e9f7 Merge topic 'cxxmodules-flagtable-fixes' into release-3.28
50f3c58083 FlagTables: Add entries for cl -scanDependencies flag
a22e9e7cf0 FlagTables: `-ifcOutput` takes a subsequent argument

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8892
2023-10-18 09:50:50 -04:00
Ben Boeckel 17fd7fe2ae Tests/CXXModules: test Visual Studio synthetic target error 2023-10-17 14:47:18 -04:00
Ben Boeckel badb6ab120 VS: Explicitly disallow C++ modules provided by imported targets
The `-ifcOnly` flag is understood by MSBuild, but there are unresolved
questions about how to integrate with with CMake's model.

See: #25328
2023-10-17 14:46:57 -04:00
Ben Boeckel 50f3c58083 FlagTables: Add entries for cl -scanDependencies flag
As of VS 17.6, MSBuild maps `ModuleDependenciesFile` to this flag
instead of the older `-sourceDependencies:directives` flag.
Map both flags to `ModuleDependenciesFile` for compatibility.
2023-10-17 09:51:53 -04:00
Brad King 84ac583bc6 Merge topic 'cxxmodules-export-fileset-info' into release-3.28
0f36156740 cxxmodules: include `INCLUDES DESTINATION` directories

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8886
2023-10-17 09:50:06 -04:00
Brad King ec916350db Merge topic 'execute_process-output_file-directory' into release-3.28
35f031e3b2 execute_process(): Restore opening files relative to WORKING_DIRECTORY

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8883
2023-10-17 09:41:38 -04:00
Brad King b15d507284 Merge topic 'Tests-NinjaPrivateDeps-error-message' into release-3.28
fe8a5a6fbf Tests/NinjaPrivateDeps: fix error message for Build-PrivateFileSet-check

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8882
2023-10-17 09:38:48 -04:00
Ben Boeckel a22e9e7cf0 FlagTables: -ifcOutput takes a subsequent argument 2023-10-16 22:12:39 -04:00
Ben Boeckel 0f36156740 cxxmodules: include INCLUDES DESTINATION directories
These paths are added outside the normal property management mechanisms.
Shuttle the value to the C++ module export as needed.

Fixes: #25289
2023-10-16 13:57:54 -04:00
Kyle Edwards 35f031e3b2 execute_process(): Restore opening files relative to WORKING_DIRECTORY
Prior to 5420639a, execute_process() would open INPUT_FILE, OUTPUT_FILE,
and ERROR_FILE relative to the WORKING_DIRECTORY argument if it was
provided. Restore this behavior for backwards compatibility.

Fixes: #25338
2023-10-16 12:23:41 -04:00
Ben Boeckel fe8a5a6fbf Tests/NinjaPrivateDeps: fix error message for Build-PrivateFileSet-check
The file *should* exist, so word the error message as such.
2023-10-16 11:38:43 -04:00
Brad King 7080b4ae83 Merge topic 'bootstrap-known-compilers' into release-3.28
7662d50a1b bootstrap: update known compilers

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8876
2023-10-16 10:38:26 -04:00
Brad King b27dcf293e Merge topic 'nvfortran-mipa' into release-3.28
44faa3773c PGI/NVHPC: Remove -Mipa compiler option for 23.3+

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robertjmaynard@gmail.com>
Merge-request: !8874
2023-10-16 10:37:24 -04:00
Brad King d624435096 Merge topic 'revert-autogen-exe-per-config' into release-3.28
c074f5c81e Autogen: Revert "AUTO*_EXECUTABLE: add support for per-config values"
06a9b25b17 Tests: Revert "NinjaMultiConfig: Update tests for the new dependency change"

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8878
2023-10-16 10:35:58 -04:00
Orkun Tokdemir c074f5c81e Autogen: Revert "AUTO*_EXECUTABLE: add support for per-config values"
Changing the `timestamp` file to `timestamp_$<CONFIG>` causes some user
projects to break when using Qt versions older than 6.6.

Revert commit fddd0f0443 (Autogen: AUTO*_EXECUTABLE: add support for
per-config values, 2023-06-14, v3.28.0-rc1~96^2~1) pending further
investigation.

Issue: #20074
2023-10-13 14:16:26 -04:00
Orkun Tokdemir 06a9b25b17 Tests: Revert "NinjaMultiConfig: Update tests for the new dependency change"
Revert commit e454314daa (NinjaMultiConfig: Update tests for the new
dependency change, 2023-07-05, v3.28.0-rc1~96^2) because we are about
to revert the change for which it updated tests.
2023-10-13 14:12:05 -04:00
مهدي شينون (Mehdi Chinoune) 44faa3773c PGI/NVHPC: Remove -Mipa compiler option for 23.3+
`-Mipa` was removed since 23.3.  The compiler warns about it:

    nvfortran-Warning-The option -Mipa has been deprecated and is ignored.

See: https://docs.nvidia.com/hpc-sdk/archive/23.9/hpc-sdk-release-notes/index.html#deprecations
2023-10-13 14:04:09 -04:00
Brad King 85fc81c61d Merge branch 'release-3.27' into release-3.28 2023-10-13 11:43:34 -04:00
Brad King c966fb70d1 Merge topic 'update-curl' into release-3.28
b298ba708a Utilities: Update hard-coded try_compile results for curl 8.4.0
8a9fa27a35 curl: Set build options the way we need for CMake
df4efb72e4 Merge branch 'upstream-curl' into update-curl
e6a6c1abc1 curl 2023-10-11 (d755a5f7)
8f6a6b02e5 curl: Update script to get curl 8.4.0

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8870
2023-10-13 11:42:20 -04:00
scivision 7662d50a1b bootstrap: update known compilers
como: Comeau-not updated since 2008, unlikely to work with CMake
icc: discontinued for icx
icc: not for C++, put in 20 years ago, probably never used / worked
2023-10-13 11:26:49 -04:00
Brad King e298ffb3ff Merge branch 'release-3.26' into release-3.27 2023-10-12 19:06:27 -04:00
Brad King f2d8c36969 Merge branch 'backport-curl-socks5-fix' into release-3.27
Merge-request: !8872
2023-10-12 19:06:14 -04:00
Brad King d6c81467aa Merge branch 'backport-curl-socks5-fix' into release-3.26
Merge-request: !8872
2023-10-12 19:05:59 -04:00
Brad King c272065e63 Merge branch 'release-3.27' into release-3.28 2023-10-12 19:03:55 -04:00
Brad King 1d6fab5537 Merge branch 'release-3.26' into release-3.27 2023-10-12 19:03:42 -04:00
Brad King 244bb7b6bc Merge branch 'backport-ctest_submit-follow-redirects' into release-3.26
Merge-request: !8873
2023-10-12 19:01:53 -04:00
Brad King 701f52670f curl: Backport SOCKS5 heap buffer overflow fix from curl 8.4.0
Backport upstream curl commit `fb4415d8ae` (socks: return error if
hostname too long for remote resolve, 2023-10-11, curl-8_4_0~2) to
address CVE-2023-38545.

Issue: #25329
2023-10-12 15:54:53 -04:00
Zack Galbreath ce661c4399 ctest: Restore support for http redirects during Submit step
After CDash PR 1519 introduced HTTP status codes greater than 200 for
various error cases, CMake commit b7c871f745 (ctest: Update ctest_submit
for CDash behavior change, 2023-07-24, v3.27.1~3^2) modified CTest's
submit handler to check the status returned by CDash and throw an error
when this status is not equal to 200.

That change had the unintended side effect of causing CTest submissions
to fail when uploading results to a URL that returns a redirect status
code (3xx).  Fix this by configuring cURL to follow the redirect.  The
status cURL reports to CTest is now 200 instead of 3xx when CDash is
located behind a redirect.

Fixes: #25159
2023-10-12 15:53:10 -04:00
Brad King b298ba708a Utilities: Update hard-coded try_compile results for curl 8.4.0 2023-10-12 15:29:35 -04:00
Brad King 8a9fa27a35 curl: Set build options the way we need for CMake
Set options added by the update to curl 8.4.0.
2023-10-12 15:29:34 -04:00
Brad King df4efb72e4 Merge branch 'upstream-curl' into update-curl
* upstream-curl:
  curl 2023-10-11 (d755a5f7)

Issue: #25329
2023-10-12 15:29:20 -04:00
Curl Upstream e6a6c1abc1 curl 2023-10-11 (d755a5f7)
Code extracted from:

    https://github.com/curl/curl.git

at commit d755a5f7c009dd63a61b2c745180d8ba937cbfeb (curl-8_4_0).
2023-10-12 15:28:57 -04:00
Brad King 8f6a6b02e5 curl: Update script to get curl 8.4.0
Issue: #25329
2023-10-12 15:28:40 -04:00
Brad King 38643edc2d CMake 3.28.0-rc1 v3.28.0-rc1 2023-10-11 14:33:33 -04:00
Brad King 581a03a138 Merge topic 'cxxmodules-try_compile' into release-3.28
fd81024e80 cxxmodules: Honor CMAKE_CXX_SCAN_FOR_MODULES in try_compile

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Reviewed-by: Ben Boeckel <ben.boeckel@kitware.com>
Merge-request: !8865
2023-10-11 10:31:05 -04:00
Brad King 8783a3ec78 Merge topic 'cxxmodules-diagnostics' into release-3.28
32438138c3 cxxmodules: Reference documentation in no-modules-support diagnostics
604466b83e Tests: Enforce RunCMake.CXXModules no-modules-support diagnostics strictly

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Ben Boeckel <ben.boeckel@kitware.com>
Merge-request: !8866
2023-10-11 10:29:58 -04:00
Brad King 9872909f99 Merge topic 'doc-typo' into release-3.28
5bbc9055c0 Help: Fix typo in COMPATIBLE_INTERFACE_NUMBER_MIN

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8867
2023-10-11 10:28:13 -04:00
權少 5bbc9055c0 Help: Fix typo in COMPATIBLE_INTERFACE_NUMBER_MIN 2023-10-11 10:15:11 -04:00
Brad King 32438138c3 cxxmodules: Reference documentation in no-modules-support diagnostics
Help users avoid errors about module support when they may not need it.

While at it, polish sentence syntax in the diagnostic messages.
2023-10-11 09:52:41 -04:00
Brad King 604466b83e Tests: Enforce RunCMake.CXXModules no-modules-support diagnostics strictly
Previously the expected output expressions used `(...)*` which did not
actually have to match anything.
2023-10-11 09:44:03 -04:00
Brad King 346c1e5d57 Merge topic 'findruby-add-support-for-3.2' into release-3.28
77ed529c22 FindRuby: Add support for 3.2

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8864
2023-10-11 09:29:10 -04:00
Brad King fd81024e80 cxxmodules: Honor CMAKE_CXX_SCAN_FOR_MODULES in try_compile
Under CMP0155's NEW behavior, projects that explicitly enable C++20
support with `set(CMAKE_CXX_STANDARD 20)` may also explicitly
disable scanning with `set(CMAKE_CXX_SCAN_FOR_MODULES OFF)`.
We already propagate `CMAKE_CXX_STANDARD` into `try_compile` test
projects, so propagate `CMAKE_CXX_SCAN_FOR_MODULES` too.

Fixes: #25313
2023-10-10 11:25:21 -04:00