Commit Graph

31440 Commits

Author SHA1 Message Date
Brad King
95ea17dfd3 Merge topic 'nmc-reuse-from' into release-3.22
244550997f PCH: Fixed Ninja Multi-Config and REUSE_FROM for MSVC

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !6713
2021-11-09 07:53:18 -05:00
Brad King
2eb96cbe41 Merge topic 'msvc-pch-reuse-config' into release-3.22
95fa27d94d PCH: Fix REUSE_FROM when Debug and RelWithDebInfo configs differ

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !6712
2021-11-09 07:52:29 -05:00
Brad King
2b9b64269f Merge topic 'vs-framework-version' into release-3.22
d51246c662 VS: Default TargetFrameworkVersion to v4.7.2 for VS 2022
f97f8537f3 VS: Model a default target framework
e40cedddc0 cmVisualStudio10TargetGenerator: Refactor target framework selection
78782cc7dc cmGlobalVisualStudio8Generator: Refactor SetGeneratorPlatform

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6699
2021-11-08 12:38:47 -05:00
Cristian Adam
244550997f PCH: Fixed Ninja Multi-Config and REUSE_FROM for MSVC
The copy_idb_pdb.cmake script would be executed for every configuration
for all configurations.

Debug would still want to get the RelWithDebInfo files, and the other
way around.
2021-11-08 18:16:36 +01:00
Cristian Adam
95fa27d94d PCH: Fix REUSE_FROM when Debug and RelWithDebInfo configs differ
If the Debug configuration contains `/ZI` but the RelWithDebInfo doesn't
then the copy_pdb_idb.cmake script will cause problems due to the fact
that it was common for both configurations but they are incompatible
with each other.
2021-11-08 16:51:18 +01:00
Brad King
d51246c662 VS: Default TargetFrameworkVersion to v4.7.2 for VS 2022
MSBuild defaults to v4.0 but VS 2022 does not install it anymore.
Explicitly specify a newer framework version by default.  Use a
version that VS 2022 installs without selecting a separate component.

Fixes: #22835
2021-11-06 06:08:55 -04:00
Brad King
f97f8537f3 VS: Model a default target framework
Add fields to the VS generator to select a target framework.
Migrate the existing default for VS 12 .NET CF for Windows CE.

Report the values in `CMAKE_VS_*` variables and use them for
the CSharp compiler id project too.

Issue: #22849
2021-11-06 06:08:54 -04:00
Brad King
e40cedddc0 cmVisualStudio10TargetGenerator: Refactor target framework selection
Split the selection from the generation of the resulting element(s).
2021-11-06 06:08:48 -04:00
Brad King
95f44e00cd Ninja Multi-Config: Fix custom command target dependencies in cross-configs
Generator expressions in a non-cross custom command's `COMMAND`
arguments are evaluated in the command config.  Target-level
dependencies implied by `TARGET_FILE` must therefore be cross
dependencies.  This is important to generate proper target-level
dependencies on the cross-config build statements for the target to
which the custom command is attached.

Fixes: #22855
2021-11-04 13:41:16 -04:00
Brad King
a883363935 Ninja Multi-Config: Fix internal cross-config target dependency ordering
In commit 7abc3d61ac (Ninja Multi-Config: Fix issue with framework
dependencies and Autogen, 2020-02-13, v3.17.0-rc2~18^2) the `cmLinkItem`
comparison operator was updated to order identical strings by the
cross-config boolean.  We need to order identical targets that way too
in order to represent both a cross and non-cross dependency on the same
target.

Issue: #22855
2021-11-04 13:41:13 -04:00
Brad King
16e24748c5 Ninja Multi-Config: Fix cross-config custom command dependency tracing
Process `CMAKE_CROSS_CONFIGS` and friends to properly configure the
generator for cross-config behavior before custom command dependency
tracing.
2021-11-04 12:23:35 -04:00
Brad King
6f995f3825 Merge topic 'msvc-cxx-modules-scanDependencies' into release-3.22
9ed1d7bee6 cmScanDepFormat: Accept P1689r4 files with version 1

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Ben Boeckel <ben.boeckel@kitware.com>
Merge-request: !6696
2021-11-04 09:05:39 -04:00
Brad King
78782cc7dc cmGlobalVisualStudio8Generator: Refactor SetGeneratorPlatform
Re-organize the method to make room for additional
`CMAKE_GENERATOR_PLATFORM` processing.
2021-11-03 15:06:25 -04:00
Brad King
9ed1d7bee6 cmScanDepFormat: Accept P1689r4 files with version 1
VS 2022's `cl` 19.30 has a `-scanDependencies` option that produces the
P1689r4 format.  It reports the "version" field with value "1".
2021-11-03 10:50:54 -04:00
Brad King
73b84db62d Ninja: Fix creation of Windows import library directory
Call `EnsureParentDirectoryExists` with our internal representation
of the path, not the representation quoted/encoded for Ninja.

Fixes: #22841
2021-11-03 10:08:48 -04:00
Brad King
bd36735f65 cmNinjaTargetGenerator: Replace "their" with "there" in comment 2021-11-03 10:08:47 -04:00
Ben Boeckel
7d52d48a32 cmCTestRunTest: get the default value from the environment
This only works due to some assumptions about how the `ENVIRONMENT`
property is processed. Comments have been added to notify anyone
modifying the behavior about where to look.

Fixes: #22819
2021-10-29 10:54:02 -04:00
Brad King
28a033cc7d CMake 3.22.0-rc2 2021-10-28 09:46:08 -04:00
Brad King
7b19f55003 Merge topic 'builtin-help-versionadded' into release-3.22
054754359a cmRST: support `versionadded` and `versionchanged` directives

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !6667
2021-10-28 09:09:23 -04:00
Brad King
f65cebf51a CMake 3.21.4 2021-10-27 09:51:39 -04:00
Brad King
964af18dc1 Merge topic 'envmod-support-mod-to-new-variables' into release-3.22
69f95cf1d9 cmCTestRunTest: fix modifying non-existent envvars

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !6663
2021-10-27 09:20:45 -04:00
Ben Boeckel
054754359a cmRST: support versionadded and versionchanged directives
This makes `versionadded` and `versionchanged` directives show up in
`cmake --help-*` output instead of disappearing (and potentially making
empty sections).

Fixes: #22808
2021-10-27 09:15:00 -04:00
Brad King
9eaf0932af cmGlobalVisualStudioVersionedGenerator: Fix repeating SetGeneratorInstance
Fix logic added by commit 8917b8512f
(cmGlobalVisualStudioVersionedGenerator: Allow repeating
SetGeneratorInstance, 2021-10-20) to avoid repeating work.
2021-10-26 14:07:07 -04:00
Ben Boeckel
69f95cf1d9 cmCTestRunTest: fix modifying non-existent envvars
When appending or modifying to a variable that has not been modified
before, the iterator was not valid, but it was used to insert into the
map again. Instead, just use indexing into the map since we know it will
exist by the end of the function anyways.

Fixes: #22796
2021-10-26 12:51:44 -04:00
Brad King
46e9ff5729 Restore honoring CMAKE_GENERATOR_INSTANCE in toolchain file
Revert the changes from commit d5b5c19278 (cmGlobalGenerator:
FindMakeProgram() before CMakeDetermineSystem, 2020-06-15,
v3.19.0-rc1~619^2~3) and commit ef91fb02f3 (cmGlobalGenerator:
FindMakeProgram() at a generator-specific time, 2020-11-23,
v3.19.1~2^2).  We must delay selecting the location of MSBuild until
after an instance of Visual Studio has been selected.

It is now safe to revert the ordering because the motivating use
case (sysroot detection in Platform/Android-Determine) has been
implemented another way.

Fixes: #22782
2021-10-20 13:00:26 -04:00
Brad King
44a86d0b38 cmake_host_system_information: Add undocumented VS_MSBUILD_COMMAND key
When using the Visual Studio generator for VS 10 or above,
offer this key to get the location of the MSBuild command
before the first `project()` or `enable_language()` command
has finished running.

This will be needed only by one of our own modules, so leave it
undocumented for now.
2021-10-20 13:00:25 -04:00
Brad King
6999b87133 cmGlobalVisualStudio10Generator: Add method to find MSBuild early
Add a way to find MSBuild before the main `FindMakeProgram` code path
has executed.
2021-10-20 13:00:25 -04:00
Brad King
7f730464be cmGlobalGenerator: Add method to check if generator is at least VS 10 2021-10-20 13:00:25 -04:00
Brad King
8917b8512f cmGlobalVisualStudioVersionedGenerator: Allow repeating SetGeneratorInstance 2021-10-20 13:00:25 -04:00
Brad King
6511654164 cmGlobalVisualStudio10Generator: Allow subclasses to reset MSBuild search
While at it, convert to inline initialization.
2021-10-20 13:00:25 -04:00
Brad King
263f8c6119 Merge topic 'fix-ifdef-windows' into release-3.22
40e73c5ac4 Source: Fix typo in _WIN32 preprocessor checks

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6631
2021-10-18 09:29:19 -04:00
Brad King
8497701d22 Merge branch 'fix-ifdef-windows' into release-3.21
Merge-request: !6631
2021-10-15 12:14:50 -04:00
Brad King
40e73c5ac4 Source: Fix typo in _WIN32 preprocessor checks
Since CMake's default compiler flags with MSVC include `-DWIN32` for
historical reasons, a few preprocessor conditions were accidentally
checking for `WIN32` instead of `_WIN32`.  The corresponding blocks
were left out when compiling official binaries for `cmake.org` because
we hard-code compiler flags without `-DWIN32`.

Fixes: #22764
2021-10-15 11:39:04 -04:00
Brad King
167060303b CMake 3.22.0-rc1 2021-10-14 08:03:54 -04:00
Seth R Johnson
93c5864aa1 cmBinUtilsMacOSMachOLinker: improve performance by memoizing otool calls
Libraries with many repeated transitive dependencies (e.g. Trilinos)
can result in very long runtime dependency call times, especially if
system calls are made more expensive by antivirus software. This
change caches the results of the calls to otool for efficiency.
2021-10-12 11:40:46 -04:00
Seth R Johnson
fc92d6640b cmFileCommand: improve error message
Print full list of unresolved dependencies and a phrase that indicates
what about the file is unresolved.
2021-10-12 11:40:45 -04:00
Brad King
975b935129 Begin 3.22 release versioning 2021-10-08 10:05:02 -04:00
Kitware Robot
a8c72f6257 CMake Nightly Date Stamp 2021-10-08 00:01:10 -04:00
Kitware Robot
b00d14ac5e CMake Nightly Date Stamp 2021-10-07 00:01:12 -04:00
Brad King
50b8b509c7 Merge topic 'bootstrap-qt6'
6458a32242 bootstrap: Enable cmake_language command to support cmake-gui with Qt 6.2

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Andrew Maclean <andrew.amaclean@gmail.com>
Merge-request: !6593
2021-10-06 10:29:00 -04:00
Brad King
e150829045 Merge topic 'Wunused-but-set-variable'
f4387c197d CPack/OSXX11: Fix Clang 13 Wunused-but-set-variable

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6595
2021-10-06 10:27:31 -04:00
Craig Scott
0c606d0c3d Merge topic 'uic-options-merge-qt6'
2a31167955 AUTOUIC: Fix merging of --blah options not being detected for Qt6

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6588
2021-10-06 07:08:35 -04:00
Kitware Robot
380f9020eb CMake Nightly Date Stamp 2021-10-06 00:01:13 -04:00
Sean McBride
f4387c197d CPack/OSXX11: Fix Clang 13 Wunused-but-set-variable
Use the success/fail flag for the function return value.
2021-10-05 11:52:35 -04:00
Brad King
6458a32242 bootstrap: Enable cmake_language command to support cmake-gui with Qt 6.2
Fixes: #22721
2021-10-05 09:48:46 -04:00
Brad King
3d192b09d1 Merge topic 'runpath-install'
8f7e98ef09 cmInstallTargetGenerator: optimize rpath adjustments

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !6573
2021-10-05 09:09:09 -04:00
Craig Scott
2a31167955 AUTOUIC: Fix merging of --blah options not being detected for Qt6
When merging a new set of uic options with a base set of options,
such as when a source file has a non-empty AUTOUIC_OPTIONS
property, the test for whether to support options starting with
two hyphens was only testing if the Qt major version was exactly
5 rather than at least 5. That had the effect of preventing such
options from being merged correctly when using Qt6, so new and
base options would both be present instead of the single merged
option from the source file properties. Update the version check
and rename function arguments to avoid misrepresenting what
they mean.

Note that uic accepts long option names with a single hyphen too.
See Qt docs for QCommandLineParser::ParseAsLongOptions
for confirmation.
2021-10-05 23:29:16 +11:00
Kitware Robot
1b21eb8212 CMake Nightly Date Stamp 2021-10-05 00:01:15 -04:00
Brad King
c55a41c9b2 Merge topic 'default_extensions'
4a0485be7f cmStandardLevelResolver: Avoid unnecessary flags, fix unset level logic
29e2b85171 Tests: Simplify RunCMake.CompileFeatures introspection
fc3a1cbdd8 CompilerID: Compiler extensions default detection
2adfd95d79 CompilerID: Rename language_dialect to language_standard
00055d7779 Help: Document CMAKE_<LANG>_STANDARD_DEFAULT
a65bee4cfc Help: Document HIP standard/extensions properties and variables
a40ff1bb5a Help: Make language standard/extensions variable pages less wordy
3feff8379b Help: Generic language standard and extension variables documentation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6177
2021-10-04 12:43:24 -04:00
Brad King
b2726f13bd Merge topic 'e2k_support'
d6746fd05c cmMakefile: Fix compilation on EDG-based compilers such as LCC
77c237d219 zstd: Fix incorrect pragma error on LCC compiler

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Acked-by: Igor S. Gerasimov <i.s.ger@yandex.ru>
Merge-request: !6579
2021-10-04 10:41:38 -04:00