Commit Graph

53758 Commits

Author SHA1 Message Date
Robert Maynard
7ce718376c NVHPC: Support 21.07 change to '-MD' where it behaves like gcc 2021-07-29 10:43:54 -04:00
Brad King
516ac348c7 Merge topic 'haiku-platform' into release-3.21
a1261ce917 Platform/Haiku: Remove the include-once behavior

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6401
2021-07-29 08:46:47 -04:00
Brad King
0a959bb271 Merge topic 'cuda_separable_clang_make' into release-3.21
3975678fcc CUDA/Clang: Simplify --register-link-binaries logic
0b1cea66cd CUDA/Clang: Fix separable compilation in non-root directories with Makefiles

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6400
2021-07-29 08:45:40 -04:00
Brad King
5f1afff9f7 Merge topic 'ctest-test-changing-labels' into release-3.21
26170ea306 CTest: Reset multi-options to persistent multi-options

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6403
2021-07-29 08:44:27 -04:00
Jessica Hamilton
a1261ce917 Platform/Haiku: Remove the include-once behavior
The behavior was added by commit 7ebc1cb2ff (Haiku: Several fixes to
platform module, 2013-10-05, v3.0.0-rc1~541^2~3), but was not explained
in its commit message.  No other platform modules do this.

The include-once behavior results in incorrect variables set in some
larger projects, e.g. .NET Core, particularly when cross-compiling,
`CMAKE_DL_LIBS` being one of these.  Remove it.
2021-07-29 08:42:46 -04:00
root
3975678fcc CUDA/Clang: Simplify --register-link-binaries logic
Move the logic for appending cubin afterwards, so the check can simply be
empty().
With the Makefile generator the option is now at the front instead of being
intermixed with the actual bins.
2021-07-29 13:19:37 +03:00
root
0b1cea66cd CUDA/Clang: Fix separable compilation in non-root directories with Makefiles
Seems the relative paths were wrong basically all around such that only
compiling files in the top-level directory would work. I've modified
CudaOnly.SeparateCompilation to cover this.

Fixes #22482.
2021-07-29 13:19:37 +03:00
Kyle Edwards
26170ea306 CTest: Reset multi-options to persistent multi-options
44ad3f0b added multi-options to CTest, but didn't reset them,
causing ctest_test() to fail if it was run multiple times with
different label arguments. Reset the multi-options.

Fixes: #22485
2021-07-28 09:58:28 -04:00
Brad King
b880867e5a Merge topic 'cmake-presets-v2-inherit-v3-optional' into release-3.21
3e42bf3e05 CMakePresets: Check presets with their own file version

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6398
2021-07-28 09:14:39 -04:00
Kyle Edwards
3e42bf3e05 CMakePresets: Check presets with their own file version
06e6981 added support for optional binaryDir and generator, but
use the dependent preset's file version instead of the current
preset's file version. Check presets with their own file version
instead of their dependent's file version.

Fixes: #22428
2021-07-27 11:45:57 -04:00
Brad King
f7cf69e34a CMake 3.21.1 v3.21.1 2021-07-27 09:29:13 -04:00
Brad King
675c130091 Merge topic 'FindXCTest-xcode-12.5' into release-3.21
0b5301a778 FindXCTest: Fix output directory for test bundle with Xcode 12.5

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6379
2021-07-27 09:11:32 -04:00
Brad King
f90e100b73 Merge topic 'disable-exec-info' into release-3.21
aa4c30182b Add option to explicitly avoid using execinfo for backtraces

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6386
2021-07-27 09:10:31 -04:00
Brad King
f90d995e1a Merge topic 'vs-flag-FS' into release-3.21
937f454fb9 VS: Remove C++ module CompileAs flag table entries for v142 and v143
8fb349a80e VS: Remove cl /FS entry from flag table for v142 and v143

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Niels Dekker <niels_dekker_address_until_2024@xs4all.nl>
Merge-request: !6390
2021-07-27 09:09:31 -04:00
Brad King
a5f655bc0d Merge topic 'test-compile-options-none' into release-3.21
91968ca668 Tests/CompileOptions: allow CMAKE_BUILD_TYPE=None

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6385
2021-07-27 09:08:34 -04:00
Yauheni Khnykin
0b5301a778 FindXCTest: Fix output directory for test bundle with Xcode 12.5
The fix from commit eafe740ead (FindXCTest: Fix output directory for
test bundle with new build system, 2021-02-09, v3.19.5~5^2) is not
necessary with Xcode 12.5, which seems to have changed/fixed the
behaviour again.

Fixes: #22462
2021-07-26 13:31:10 -04:00
Đoàn Trần Công Danh
aa4c30182b Add option to explicitly avoid using execinfo for backtraces
backtrace(3) from libexecinfo in musl will run into crash [1].

Provide an option to disable it explicitly even if libexecinfo is
present.

1: https://www.openwall.com/lists/musl/2021/07/17/1
2021-07-26 12:14:02 -04:00
Brad King
0615aeffbf Merge topic 'update-kwsys' into release-3.21
4977184128 Merge branch 'upstream-KWSys' into update-kwsys
7fc3f7001a KWSys 2021-07-26 (d5fd6ca2)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6391
2021-07-26 12:10:23 -04:00
Brad King
937f454fb9 VS: Remove C++ module CompileAs flag table entries for v142 and v143
The `CompileAs` entry in a `.vcxproj` file with values:

* `CompileAsCppModule` for `-interface`
* `CompileAsCppModuleInternalPartition` for `-internalPartition`
* `CompileAsHeaderUnit` for `-exportHeader`

does not cause the corresponding flag to be added to the command line.
Drop the flag table entries so that the flags go to `AdditionalOptions`.

Fixes: #22477
2021-07-26 10:49:26 -04:00
Brad King
8fb349a80e VS: Remove cl /FS entry from flag table for v142 and v143
The `ForceSynchronousPDBWrites` entry in a `.vcxproj` file does not
actually cause the `/FS` flag to be added to the command line.

Fixes: #22476
2021-07-26 10:45:09 -04:00
Brad King
4977184128 Merge branch 'upstream-KWSys' into update-kwsys
# By KWSys Upstream
* upstream-KWSys:
  KWSys 2021-07-26 (d5fd6ca2)
2021-07-26 10:17:18 -04:00
KWSys Upstream
7fc3f7001a KWSys 2021-07-26 (d5fd6ca2)
Code extracted from:

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

at commit d5fd6ca2ba5b4ca04d7ac346ceb87f7d2b0ad8aa (master).

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

Dženan Zukić (1):
      7079df74 SystemTools: Fix GetOperatingSystemNameAndVersion empty string return

Đoàn Trần Công Danh (1):
      4e69b791 SystemInformation: Add option to explicitly avoid using execinfo
2021-07-26 10:17:18 -04:00
Đoàn Trần Công Danh
91968ca668 Tests/CompileOptions: allow CMAKE_BUILD_TYPE=None
In the same spirit of commit ce1cadd35a, (Tests/ConfigSources: fix for
non main stream CMAKE_BUILD_TYPE, 2021-04-01).

Allow distributions' check to pass seemlessly.

Issue: #22470
2021-07-26 09:50:26 -04:00
Brad King
0079f24f45 Merge topic 'doc-custom-command-depfiles' into release-3.21
f6e5743d0e Help: Clarify and correct wording around DEPFILE option

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6387
2021-07-26 09:39:55 -04:00
Brad King
00a3889c19 Merge topic 'ninja-multi-test-fix' into release-3.21
08131e83bc Tests: Clean up Ninja Multi-Config test from cb777dd

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6383
2021-07-26 09:36:49 -04:00
Brad King
98d813b92c Merge topic 'autouic-header-depends' into release-3.21
e5ec0e52f4 AUTOUIC: Fix generating of dependency rules for UI header files

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6380
2021-07-26 09:34:51 -04:00
Brad King
2f7c4a788c Merge topic 'autogen-deps' into release-3.21
4bda03370d AutoGen: Fix needless compilation of mocs_compilation.cpp

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6381
2021-07-26 09:33:56 -04:00
Craig Scott
9d9d527513 Merge topic 'doc-ctest-output' into release-3.21
ba6d1947b6 Help: Add cross-references between test output size ctest variables
cdde9e5a10 Help: Improve wording and cross-referencing for ctest JUnit output

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6389
2021-07-26 07:48:02 -04:00
Craig Scott
ba6d1947b6 Help: Add cross-references between test output size ctest variables 2021-07-26 21:08:45 +10:00
Craig Scott
cdde9e5a10 Help: Improve wording and cross-referencing for ctest JUnit output 2021-07-25 21:37:29 +10:00
Craig Scott
f6e5743d0e Help: Clarify and correct wording around DEPFILE option
The previous wording contradicted itself regarding whether
Visual Studio generators were supported, and about when
generator expressions could be used. Restructure the paragraphs
and max it clearer what support was added in which CMake
versions.
2021-07-24 15:08:21 +10:00
Kyle Edwards
08131e83bc Tests: Clean up Ninja Multi-Config test from cb777dd 2021-07-23 13:22:59 -04:00
Joerg Bornemann
4bda03370d AutoGen: Fix needless compilation of mocs_compilation.cpp
For an AUTOMOC'ed target foo, when depfiles are used, there are the
following dependencies:

foo_autogen -> foo_autogen/timestamp
foo_autogen/mocs_compilation.cpp -> foo_autogen/timestamp

The first is used to trigger AUTOGEN.
The second erroneously triggers a recompilation of
mocs_compilation.cpp when any source file of target foo is touched.

Remove the latter dependency and replace it with an order-only
dependency from foo_autogen/mocs_compilation.cpp to
foo_autogen_timestamp_deps.

That is achieved by making mocs_compilation.cpp or its
per-configuration variants byproduct(s) of the timestamp file.

Fixes: #22338
2021-07-23 15:47:28 +02:00
Brad King
c8f13bcb41 Merge topic 'gnu_c23' into release-3.21
d61bc4241d GNU: Correct C23 flags

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6376
2021-07-23 09:40:35 -04:00
Brad King
e06c60f7e9 Merge topic 'nmc-target-objects' into release-3.21
cb777dd81e Ninja Multi-Config: Restore TARGET_OBJECTS support in cross-configs
83c8272280 cmGeneratorExpressionNode: Factor out local variable for global generator

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6371
2021-07-23 09:39:25 -04:00
Brad King
8ea0691e62 Merge topic 'enable_language-CMP0126' into release-3.21
078ba4b2a4 Swift: Update test case to try CMP0126 NEW behavior

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6375
2021-07-23 09:38:04 -04:00
Alexey Edelev
e5ec0e52f4 AUTOUIC: Fix generating of dependency rules for UI header files
We could not rely on .ui files when generating the ninja rules
for the generated UI header files. .ui files might be added to the
target sources but never processed by AUTOUIC afterward, since UI
header files are never included in a source code. Instead of adding
dependency rules based on the .ui files, this approach scans
non-generated source files for includes of the UI header files,
as AUTOUIC does. This gives the consistent set of UI header files
at configure time, that could be used to generate byproducts rules
for the AUTOUIC. Also, the path to the generated UI header file depends
not on the .ui file location but on the include line is used in source
files.

Fixes: #16776
2021-07-23 15:37:31 +02:00
Brad King
41e9953143 Merge topic 'iar-binutils' into release-3.21
5b9bfe738c IAR: Moved search logic to BinUtils.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6372
2021-07-23 09:27:28 -04:00
Jean-Marc Hengen
5b9bfe738c IAR: Moved search logic to BinUtils.
The search logic for the IAR linker, librarian and related tools is
moved from `Modules/Compiler/IAR-FindBinUtils.cmake` to
`Modules/CMakeFindBinUtils.cmake` by introducing an new elseif block
for the IAR toolchain.

The search logic was refactored to omit repeating itself.

Fixes: #22425
2021-07-23 14:34:26 +02:00
Raul Tambre
d61bc4241d GNU: Correct C23 flags
Non-final forms aren't supported yet, unlike C++23.
Seems I might've gotten confused due to that when I added these.

Fixes #22453.
2021-07-21 20:25:02 +03:00
Brad King
cb777dd81e Ninja Multi-Config: Restore TARGET_OBJECTS support in cross-configs
Since commit 2ae72ef74b (Xcode: Enable multi-arch TARGET_OBJECTS genex
in [INTERFACE_]LINK_LIBRARIES, 2021-05-26, v3.21.0-rc1~126^2) the
TARGET_OBJECTS genex, when referenced for linking, is now evaluated with
EvaluateForBuildsystem enabled.  This causes the object file paths to be
computed with a buildsystem-specific placeholder for the configuration.

This is normally fine because the placeholder will be evaluated by the
native buildsystem tool using the proper configuration.  However, the
Ninja Multi-Config generator's `${CONFIGURATION}` placeholder may not
have the correct value for cross-config object files.  Switch back to
using the per-config location of each object file for this generator.

Fixes: #22436
2021-07-21 11:46:15 -04:00
Brad King
078ba4b2a4 Swift: Update test case to try CMP0126 NEW behavior
Extend the `SwiftOnly` test to cover the fix in commit 3ddd7f3576
(enable_language: Fix test for working compiler with CMP0126 NEW
behavior, 2021-07-15), as that commit did for the `CSharpOnly` test.

Fixes: #22451
2021-07-21 11:37:45 -04:00
Brad King
e98bfa484f Merge topic 'message-color' into release-3.21
c7a8c9c811 cmMessenger: Revert to non-color messages on Windows

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6369
2021-07-21 11:34:04 -04:00
Brad King
6e04e06e67 Merge topic 'CMakeDependentOption-revert-parens' into release-3.21
d777ca12f6 CMakeDependentOption: Revert "Allow parentheses in the depends string"

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6368
2021-07-21 11:32:48 -04:00
Brad King
797aa4c410 Merge topic 'toolchain-CMP0126' into release-3.21
144be54dd3 try_compile: Propagate CMP0126 to the generated test project

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6366
2021-07-21 11:31:29 -04:00
Brad King
83c8272280 cmGeneratorExpressionNode: Factor out local variable for global generator 2021-07-20 14:52:01 -04:00
Brad King
c7a8c9c811 cmMessenger: Revert to non-color messages on Windows
Since commit 0a0a0f8a74 (cmMessenger: Color messages to terminal by
type, 2021-05-18, v3.21.0-rc1~146^2) the message output no longer goes
through our custom streambuf on Windows that converts output encoding.
This can cause messages to be printed with the wrong encoding in a
Windows Console.  It also causes messages to have a mix of LF and CRLF
newlines because `stderr` converts LF to CRLF but our custom streambuf
does not.

Revert to using just `cerr` for messages on Windows.  Another approach
will be needed to achieve color output on Windows later.

Fixes: #22444
2021-07-20 13:30:11 -04:00
Brad King
d777ca12f6 CMakeDependentOption: Revert "Allow parentheses in the depends string"
Revert commit 0665d9092e (CMakeDependentOption: Allow parentheses in the
depends string, 2021-06-13, v3.21.0-rc1~32^2).  It broke existing use
cases with parentheses in regular expressions.  Also add a test for this.

Fixes: #22447
2021-07-20 12:18:53 -04:00
Brad King
31ecd37180 Merge topic 'iar-exe-suffix' into release-3.21
09bc0785ee Help: Document CMAKE_EXECUTABLE_SUFFIX_<LANG> explicitly
05a3bafe65 Compiler/IAR: Avoid clobbering CMAKE_EXECUTABLE_SUFFIX

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6357
2021-07-20 11:56:01 -04:00
Brad King
e10c776e58 Merge topic 'iar-host-exe' into release-3.21
1c66012f8e Compiler/IAR: search for both IAR's binaries * and *.exe

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6362
2021-07-20 11:55:05 -04:00