Commit Graph

48848 Commits

Author SHA1 Message Date
Joerg Bornemann 9ac3503d30 AutoMoc: Re-run moc if a dependency is missing
AutoMoc uses the moc-emitted dependency file of Qt 5.15 to track
dependencies. Such a dependency may well live outside the project and
can vanish, for example when installing a new compiler version.

This situation was detected before, but merely a warning was issued.
Now, we're considering a generated file as out of date if a dependency
is missing and re-generate it.

We also have to remove the missing dependency from the ParseCache.
Otherwise the AUTOMOC target for all generators other than Ninja will
always be out of date.

The ParseCacheChanged flag had to be made atomic, because we're
potentially accessing it from multiple threads. The dependencies vector
itself is not vulnerable in this regard, because there's one vector per
file, and we're accessing exactly one ParseCacheT::FileHandleT per thread.

Fixes: #21136
2020-09-09 12:51:28 +02:00
Brad King fff360c60c Merge topic 'ninja-multi-automoc-regression' into release-3.18
a9fd3a107d Ninja Multi-Config: Fix dependencies of utility targets
f1199bdc96 Ninja Multi-Config: Fix cleaning of utility targets with commands
657047cd24 Ninja Multi-Config: Fix clean:all target
c35d1927a5 Tests: Pass additional Qt information to Ninja and NMC tests

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5177
2020-09-03 08:47:33 -04:00
Brad King be66f2e24f Merge topic 'FindPython-include-dir-ABI-checks' into release-3.18
6fdfe2428d FindPython: enhance ABI checks against include directory

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5181
2020-09-03 08:46:36 -04:00
Kyle Edwards a9fd3a107d Ninja Multi-Config: Fix dependencies of utility targets
Fixes: #21118
2020-09-02 12:59:59 -04:00
Kyle Edwards f1199bdc96 Ninja Multi-Config: Fix cleaning of utility targets with commands 2020-09-02 12:59:59 -04:00
Kyle Edwards 657047cd24 Ninja Multi-Config: Fix clean:all target 2020-09-02 12:59:59 -04:00
Marc Chevrier 6fdfe2428d FindPython: enhance ABI checks against include directory
Fixes: #21149
2020-09-02 15:41:16 +02:00
Kyle Edwards c35d1927a5 Tests: Pass additional Qt information to Ninja and NMC tests 2020-09-01 16:58:58 -04:00
Brad King 7da3c744e3 Merge topic 'automoc-depend-project-file' into release-3.18
776059ef0f Merge branch 'backport-3.17-automoc-depend-project-file'
6b20bbd2dd AutoMoc: Restore support for re-running after project file changes

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5166
2020-09-01 09:09:30 -04:00
Brad King cb70145b36 Merge topic 'UseSWIG-interface-option' into release-3.18
d264685bee UseSWIG: Update option -interface usage

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5172
2020-09-01 09:08:06 -04:00
Brad King 776059ef0f Merge branch 'backport-3.17-automoc-depend-project-file' 2020-08-31 13:10:31 -04:00
Joerg Bornemann 6b20bbd2dd AutoMoc: Restore support for re-running after project file changes
For Qt >= 5.15.0 and Ninja generators AutoMoc creates a depfile to let
Ninja decide when to run AutoMoc.  This was introduced by commit aebfbcaa46
(AutoGen: Use depfiles for the XXX_autogen ninja targets, 2020-01-14,
v3.17.0-rc1~58^2).

However, AutoMoc was not triggered after adding a new moc-able file to
the project. This patch adds the project file (and potentially included
files) to the dependencies in the depfile.

Now, a re-run of AutoMoc is triggered if the project file changes.

Fixes: #21127
2020-08-31 13:07:23 -04:00
Marc Chevrier d264685bee UseSWIG: Update option -interface usage
Option -interface must not be used if multiple SWIG files are part
of the same library.

Fixes: #21134
2020-08-31 12:33:57 +02:00
Brad King f2a22ecda9 Merge branch 'release-3.17' into release-3.18 2020-08-27 11:16:32 -04:00
Brad King 9fbd3df21e Merge branch 'backport-3.17-cmext-vs16-declval' into release-3.17
Merge-request: !4971
2020-08-27 11:13:20 -04:00
Sumit Bhardwaj d2f891288a Implement cm::static_reference_cast by declval
Previously, cm::static_reference_cast used invoke_result_t and took the
address of O::get. This is not in complete conformance with standard.

This MR changes the implementation to use std::declval<O>.get() which is
always well-defined.
2020-08-27 11:12:25 -04:00
Brad King 807aaae4ac Merge topic 'FindJNI-arm64' into release-3.18
44dffbcc94 FindJNI: Add arm64 support

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5162
2020-08-26 10:26:52 -04:00
Brad King 57c1be6e15 Merge topic 'cuda-std-for-msvc' into release-3.18
bed315a0da CUDA: Support setting CUDA14/17 when using MSVC

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5160
2020-08-26 10:25:44 -04:00
Malcolm Parsons 44dffbcc94 FindJNI: Add arm64 support
On 64-bit ARM, JVM directories have an arm64 suffix.
2020-08-25 14:34:02 -04:00
Brad King 4767548733 Merge topic 'automoc_timestamp_nmc_fix' into release-3.18
a48bb185c3 AutoGen: Fix moc and uic dependencies when building Qt itself

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5153
2020-08-25 13:58:28 -04:00
Alexandru Croitor a48bb185c3 AutoGen: Fix moc and uic dependencies when building Qt itself
When building Qt itself, the moc and uic executables are spcecified
via a generator expression of the form $<TARGET_FILE:Qt6::moc>,
which ends populating Moc's and Uic's 'Executable' field but not the
ExecutableTarget and ExecutableTargetName fields.

In such a scenario, the code in
cmQtAutoGenInitializer::InitAutogenTarget fails to add a dependency
on moc (or uic), because ExecutableTarget is null. First try to add
a dependency on the ExecutableTarget if it's not empty, otherwise try
to add a dependency on the path specified in the 'Executable' field.

Issue: #21118
2020-08-25 12:29:23 -04:00
Brad King d2c3dea64b Merge topic 'msvc_static_assert' into release-3.18
95bc11dbb4 MSVC: Record support for c_static_assert

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5148
2020-08-25 10:26:54 -04:00
Robert Maynard bed315a0da CUDA: Support setting CUDA14/17 when using MSVC
Fixes #20953
2020-08-24 09:53:38 -04:00
Raul Tambre 95bc11dbb4 MSVC: Record support for c_static_assert
Supported since MSVC 19.28.29115 (VS 16.8.0 Preview 1.0).
2020-08-20 09:45:47 -04:00
Brad King aaa5eab410 CMake 3.18.2 v3.18.2 2020-08-20 08:20:32 -04:00
Brad King 4fc1dd2ff1 Merge topic 'FindMPI-cuda-pthread' into release-3.18
47abe5f225 FindMPI: Fix regression in pthread guard

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Raul Tambre <raul@tambre.ee>
Merge-request: !5147
2020-08-20 07:55:23 -04:00
Brad King 590b8791a0 Merge topic 'gitlab-ci-msvc-14.27' into release-3.18
983cb0c891 gitlab-ci: Update Windows builds to MSVC 19.27

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5144
2020-08-20 07:53:12 -04:00
Brad King eeaa890147 Merge topic 'msvc_c11' into release-3.18
f4373feda8 Tests: Fix RunCMake.try_compile test for C standards with MSVC 19.27

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5145
2020-08-20 07:49:27 -04:00
Axel Huebl 47abe5f225 FindMPI: Fix regression in pthread guard
Fix a regression with MPI and CUDA<10.2 that did let `-pthread` flags
slip to nvcc again.  In commit b725a19072 (FindMPI: Deny -fexceptions
from NVCC, 2020-07-02, v3.18.0-rc4~12^2) we accidentally forgot to use
the variable containing the replacement result.

Fixes: #21108
2020-08-20 06:52:45 -04:00
Brad King 983cb0c891 gitlab-ci: Update Windows builds to MSVC 19.27 2020-08-19 14:53:46 -04:00
Brad King f4373feda8 Tests: Fix RunCMake.try_compile test for C standards with MSVC 19.27
Since commit f7347f28c7 (MSVC: Record support for C11 and c_restrict,
2020-08-09) we know about MSVC C language standards.  Update the
`RunCMake.try_compile` test to be aware of this even when CMake is
itself configured by an older CMake that does not know this.
2020-08-19 14:52:52 -04:00
Brad King 281a87f834 Merge topic 'ep-patch-skip-update-dep' into release-3.18
715324742f ExternalProject: Stop configure target from always appearing out-of-date
c0b7198ad9 ExternalProject: Stop patch target from always appearing out-of-date

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5136
2020-08-19 11:40:02 -04:00
Brad King 833e84ca1c Merge topic 'llvm-rc-quote-cmake' into release-3.18
3937536d16 llvm-rc: Fix quoting of path to cmake in CMAKE_RC_COMPILE_OBJECT

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5139
2020-08-19 11:37:54 -04:00
Brad King e9d0059bb3 Merge topic 'FindPython-enhance-version-extraction-from-lib-name' into release-3.18
72822e26c9 FindPython: enhance robustness of version extraction from library name

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5135
2020-08-19 11:36:51 -04:00
Brad King 09e8de75d5 Merge topic 'CMakeFindBinUtils-fallback' into release-3.18
6896e50967 CMakeFindBinUtils: Always consider plain binutils when not cross-compiling

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5137
2020-08-19 11:35:00 -04:00
Thomas Bernard 3937536d16 llvm-rc: Fix quoting of path to cmake in CMAKE_RC_COMPILE_OBJECT
When the installation path to cmake includes spaces, the
`<CMAKE_COMMAND>` is required to have proper quotation of the cmake
call.

Fixes: #21095
2020-08-18 17:15:34 -04:00
Robert Maynard 6896e50967 CMakeFindBinUtils: Always consider plain binutils when not cross-compiling
Since commit c5dd2ca538 (DetermineCompiler: Relax
_CMAKE_TOOLCHAIN_PREFIX detection, 2020-03-25, v3.18.0-rc1~430^2),
`_CMAKE_TOOLCHAIN_PREFIX` may be set even when not cross-compiling.
In this case we may still need to use binutils without any prefix.

Fixes: #21103
2020-08-18 13:19:24 -04:00
Craig Scott 715324742f ExternalProject: Stop configure target from always appearing out-of-date
When updates are disconnected, don't depend on skip-update because that
target is always considered out of date. Depend directly on the patch target
instead because it already depends on the appropriate target regardless of
whether updates are disconnected or not. This in turn means nothing depends
on the skip-update target, so it has also been removed.

Relates: #21086
2020-08-18 23:27:47 +10:00
Craig Scott c0b7198ad9 ExternalProject: Stop patch target from always appearing out-of-date
The skip-update target is always considered out-of-date. The change in
7249ba9677 (ExternalProject: Enforce that patch depends on update, 2020-04-03)
made the patch target depend on skip-update, which in turn made it
always out of date too. The patch command should only be re-run if the download
needs to be performed again where updates are disconnected.

Fixes: #21086
2020-08-18 23:21:36 +10:00
Marc Chevrier 72822e26c9 FindPython: enhance robustness of version extraction from library name
Fixes: #21105
2020-08-18 12:30:47 +02:00
Brad King acd15bf146 Merge topic 'FindRuby_document_deprecated_variables' into release-3.18
e7fe0b24c4 FindRuby: Add documentation for deprecated variables

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5120
2020-08-12 12:22:45 -04:00
Daniele E. Domenichelli e7fe0b24c4 FindRuby: Add documentation for deprecated variables
Since commit e672db628b (FindRuby: Rename variables to match case of
module name, 2020-03-11, v3.18.0-rc1~546^2), the upper-case-prefixed
variable names are for compatibility only but still exist.  Put them
back in the documentation.

Issue: #21064
2020-08-12 11:25:45 -04:00
Brad King eaf81817c4 Merge topic 'msvc_c11' into release-3.18
f7347f28c7 MSVC: Record support for C11 and c_restrict

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5115
2020-08-12 11:14:51 -04:00
Brad King 0ca6d5766b Merge topic 'FindPython-manage-SOABI-in-all-versions' into release-3.18
951640f1f9 FindPython: manage SOABI for all Python versions

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5119
2020-08-12 11:13:16 -04:00
Brad King edd908fc39 Merge topic 'gitlab-ci-tag-cmake' into release-3.18
778ea72b59 gitlab-ci: add 'cmake' tag to all jobs

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5121
2020-08-11 13:40:47 -04:00
Brad King 778ea72b59 gitlab-ci: add 'cmake' tag to all jobs
This will give us more granular control over which runners
accept jobs for CMake.
2020-08-11 13:19:05 -04:00
Raul Tambre f7347f28c7 MSVC: Record support for C11 and c_restrict
MSVC >=19.27 supports a C11 switch.
The `c_restrict` feature has also been implemented.

Fixes: #21069
2020-08-11 09:08:21 -04:00
Brad King 9ccd13d8cd Merge topic 'findhdf5-fix-nohl' into release-3.18
e038107ee7 FindHDF5: fix compiler detection when HL is disabled

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5112
2020-08-11 08:55:45 -04:00
Brad King 5c9edd38c6 Merge topic 'osx-archs-apple-only' into release-3.18
70ce1ad64a PCH: Avoid Apple-specific architecture flags on other platforms

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5118
2020-08-11 08:54:15 -04:00
Brad King e524819483 Merge topic 'automoc-path-prefix-off' into release-3.18
5b5be34811 Help: Add 3.18.2 release note about AUTOMOC_PATH_PREFIX default change
db659e18bc Merge branch 'backport-3.17-automoc-path-prefix-off'
e503fbe38a Merge branch 'backport-3.16-automoc-path-prefix-off'
4c33b305a0 Autogen: Turn off moc path prefix generation by default
56510b7d85 Merge branch 'backport-test-FindPkgConfig-isolate-env' into release-3.17
effc9a1032 Merge branch 'backport-3.17-automoc_timestamp_deps' into release-3.17
507fecd7e2 Merge branch 'ninja-multi-rsp-remove-path' into release-3.17

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5105
2020-08-11 08:51:01 -04:00