Commit Graph

31415 Commits

Author SHA1 Message Date
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
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
Sean McBride
37859e3244 Source: Fix clang -Wimplicit-fallthrough warnings 2021-09-28 10:53:54 -04:00
Jake Turner
16ea0e57f7 Xcode: Treat .inl files as C++ header files
Generate the `explicitFileType` as `sourcecode.cpp.h` instead of just
`sourcecode`.  This enables syntax highlighting in Xcode.
2021-09-28 10:49:04 -04:00
Brad King
b8a2ce0484 cmGlobalXCodeGenerator: Remove dead buildsystem version check
In commit 8d5f4c4db9 (Xcode: Switch to the "new build system" for Xcode
12 and above, 2020-09-14, v3.19.0-rc1~143^2~7) we accidentally added
code in an `else` block that under the opposite condition by which
the block can be entered.  Remove it.

Fixes: #22681
2021-09-28 10:42:48 -04:00
Sean McBride
907d098838 Source: Fix clang -Wextra-semi warnings 2021-09-28 09:59:24 -04:00
Kitware Robot
966d9b3967 CMake Nightly Date Stamp 2021-09-28 00:01:17 -04:00
Brad King
a21d5455c0 Merge topic 'autogen-dep-on-imported-implib-only-target'
895fa3433f cmQtAutoGenInitializer: support IMPLIB-only imported targets
354c1f5628 Tests/RunCMake/Autogen: test CMP0111 behavior

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !6558
2021-09-27 13:48:57 -04:00
Kitware Robot
b0c2aeaab4 CMake Nightly Date Stamp 2021-09-27 00:01:25 -04:00
Kitware Robot
1edc9e8887 CMake Nightly Date Stamp 2021-09-26 00:01:28 -04:00
Kitware Robot
c42a5a6d93 CMake Nightly Date Stamp 2021-09-25 00:01:17 -04:00
Ben Boeckel
895fa3433f cmQtAutoGenInitializer: support IMPLIB-only imported targets
Instead of using the target name directly (which ends up in the `Ninja`
generators querying for the `LOCATION` parameter), wrap up the target
name in a `$<TARGET_LINKER_FILE:>` to avoid the query for the unset
property.
2021-09-24 11:29:54 -04:00
Kitware Robot
d2541062bd CMake Nightly Date Stamp 2021-09-24 00:01:17 -04:00
Brad King
e83a5f9cac Merge topic 'vs2008-no-pch-flag'
a2b782bbc1 VS: Map /Y- flag to not use precompiled headers with VS 2008

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6548
2021-09-23 10:33:19 -04:00
Kitware Robot
efed2f8706 CMake Nightly Date Stamp 2021-09-23 00:01:16 -04:00