Commit Graph

31428 Commits

Author SHA1 Message Date
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
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
Kitware Robot
8dee2c3aee CMake Nightly Date Stamp 2021-10-04 00:01:32 -04:00
Kitware Robot
fae0b9fb71 CMake Nightly Date Stamp 2021-10-03 00:01:10 -04:00
Kitware Robot
be604bec8d CMake Nightly Date Stamp 2021-10-02 00:01:09 -04:00
makise-homura
d6746fd05c cmMakefile: Fix compilation on EDG-based compilers such as LCC
Compilers based on EDG frontend sometimes throw
an internal error while using `this->` at some
circumstances. While it is up to be fixed in future
versions of front end, this bug still occurs in
some modern compilers, such as LCC for Elbrus CPUs,
and probably others (maybe ICC). It caused CMake to be
unbuildable by these compilers. This patch fixes it.
2021-10-01 13:05:53 -04:00
Kitware Robot
b3a0bddc4e CMake Nightly Date Stamp 2021-10-01 00:01:25 -04:00
Seth R Johnson
8f7e98ef09 cmInstallTargetGenerator: optimize rpath adjustments
With builds that have many internal library directories or many
external libraries, rpaths can be quite large. The cost of calling
install_name_tool thousands of times can add up to minutes on a build,
especially if virus scanning software is there to help you out. With
this change, instead of deleting and then re-adding an rpath, we ignore
it.  Likewise we batch all the rpath adjustment calls into a single command.

Before, installing SCALE (some libraries have 70+ build-time RPATHs that
get deleted, plus up to a dozen external RPATHs from upstream
dependencies that should remain in the binary) would take almost 9
minutes on my laptop, and after this change the installation takes only
30 second.
2021-09-30 15:36:35 -04:00
Kitware Robot
32818510c8 CMake Nightly Date Stamp 2021-09-30 00:01:14 -04:00
Raul Tambre
4a0485be7f cmStandardLevelResolver: Avoid unnecessary flags, fix unset level logic
The changes are part of CMP0128.

When the standard level is unset:
* Flags are added if extension mode doesn't match the compiler's default.
  Previously logic only worked if LANG_EXTENSIONS was ON. Fixes #22224.
* The full flag is used. Previously CMAKE_LANG_EXTENSION_COMPILE_OPTION was
  used. This was only supported for IAR.

Otherwise:
* Avoid adding flags if not necessary per the detected compiler defaults.
* Fixed check for when the requested standard is older. It now matches the
  nearby comments.

I reworded the fallback comment as its logic was a bit difficult to wrap my
head around.
2021-09-29 22:28:40 +03:00
Brad King
5bd94332c7 Merge topic 'clang-warnings'
37859e3244 Source: Fix clang -Wimplicit-fallthrough warnings
907d098838 Source: Fix clang -Wextra-semi warnings

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !6561
2021-09-29 09:57:47 -04:00
Brad King
84673a8243 Merge topic 'xcode-dead-code'
b8a2ce0484 cmGlobalXCodeGenerator: Remove dead buildsystem version check

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Raul Tambre <raul@tambre.ee>
Merge-request: !6568
2021-09-29 09:57:00 -04:00
Brad King
a074204986 Merge topic 'xcode-generation-support-inl-files'
16ea0e57f7 Xcode: Treat .inl files as C++ header files

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6563
2021-09-29 09:56:02 -04:00
Kitware Robot
700f76299c CMake Nightly Date Stamp 2021-09-29 00:01:13 -04:00