Commit Graph

27793 Commits

Author SHA1 Message Date
Brad King 98aa628f0b Makefiles: Scan Objective C/C++ preprocessor dependencies
Fixes: #20635
2020-04-28 07:03:07 -04:00
Brad King 4c82f309c5 CMake 3.16.6 2020-04-10 07:37:32 -04:00
Brad King 9fce97939c Merge branch 'backport-3.16-link-libs-config-case' into release-3.16
Merge-request: !4544
2020-03-30 11:49:13 -04:00
Brad King 5a95b5e091 target_link_libraries: Fix regression in case of $<CONFIG> genex
Since commit b8626261e9 (Precompile headers: Add methods to generate PCH
sources, 2019-07-13, v3.16.0-rc1~182^2~4) we look up source files for a
target using an upper-case configuration even though an original-case
name is sufficient.  Since commit 36ded610af (PCH: Generate sources
during Compute step, 2019-10-05, v3.16.0-rc1~2^2) the source file lookup
is the first time we compute many on-demand structures that depend on
the configuration name.  This caused the `$<CONFIG>` generator
expression to evaluate to the upper-case configuration name in some
cases where we used original-case before.

Fix this by switching the source file lookup to the original-case config
name.  Add a test covering the symptom that led to the discovery of this
problem.

Fixes: #20517
2020-03-30 11:24:27 -04:00
Brad King 6fdf05db7a Merge branch 'make-nested-silent' into release-3.16
Merge-request: !4515
2020-03-26 07:37:06 -04:00
Brad King d6d9da5178 Makefiles: Fix silencing of nested calls for GNU make 4.3
Since GNU make 4.3, `.SILENT:` no longer causes nested `$(MAKE)` calls
to get `-s` implicitly.  Add the `-s` flag explicitly on such calls to
suppress messages about Entering/Leaving directories.

Fixes: #20487
2020-03-26 07:34:24 -04:00
Saleem Abdulrasool af39d1b993 Swift: Fix quoting of library search paths with spaces
The library search paths added by commit 2746c61e6d (Swift: Add library
search paths for dependencies, 2019-06-09, v3.16.0-rc1~561^2) need to be
quoted properly on command lines to handle spaces and such.  This was
already done by `cmLinkLineComputer::ComputeLinkPath` for
non-Swift-specific link directories.
2020-03-12 08:46:11 -04:00
Brad King b7d8c91822 CMake 3.16.5 2020-03-04 08:50:44 -05:00
Brad King 0aa91f9a66 Merge branch 'backport-cuda-non-device-link' into release-3.16
Merge-request: !4376
2020-02-24 13:36:24 -05:00
Francisco Facioni 738f3f23aa Ninja: Do not use nvcc response files with non-nvcc tools
Since commit d91b5a72cd (Ninja: Add support for CUDA nvcc response
files, 2019-05-30, v3.15.0-rc1~8^2) we use NVCC's `--options-file`
option to avoid long link command lines via a response file.  However,
for non-device linking the host tools are used and the option does not
make sense.  Update the logic to use `--options-file` only for device
linking.  Linking with the host tools already has its own logic for
response files.

Fixes: #19954
2020-02-24 13:31:33 -05:00
Brad King 0f0d8f5b6f Merge branch 'backport-3.16-install-default-fix' into release-3.16 2020-02-12 09:01:23 -05:00
Kyle Edwards 9442ae5083 install: Fix regression when using default destinations
In commit 9fc20a4f3e (install: Add sane set of defaults for DESTINATION
and file type parameters, 2018-11-02, v3.14.0-rc1~410^2~1), a regression
was introduced, in which an `install(TARGETS)` with a
RUNTIME/LIBRARY/ARCHIVE DESTINATION but no PUBLIC_HEADER/PRIVATE_HEADER
DESTINATION would then install the headers.  The old behavior did not do
this.  Restore the old behavior.

Fixes: #20326
2020-02-11 08:34:16 -05:00
Brad King e756328434 Propagate backtraces from LINK_LIBRARIES through to link line items
Since commit d4d0dd0f6a (cmLinkLineComputer: Add ComputeLinkLibs
overload with backtraces, 2019-09-13, v3.16.0-rc1~87^2~4), backtraces
have been collected by `ComputeLinkLibs` by looking back through the
link implementation libraries for one matching the text of the link line
item.  This is slow in projects with long link lines.

Instead, teach `cmComputeLinkDepends` and `cmComputeLinkInformation` to
carry backtrace information explicitly along with the text of each item.

Fixes: #20322
2020-02-10 16:11:38 -05:00
Brad King 44b8937b76 CMake 3.16.4 2020-02-05 09:19:24 -05:00
Brad King 4b1a6a4722 Merge topic 'vs-version-for-unity' into release-3.16
9135954e2f VS: Do not use native unity builds on VS 2017 versions less than 15.8

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4324
2020-02-05 08:33:50 -05:00
Brad King 9135954e2f VS: Do not use native unity builds on VS 2017 versions less than 15.8
VS 2017 version 15.8 introduced support for unity builds implemented
in part by the `$(VCTargetsPath)/Microsoft.Cpp.Unity.targets` file.
Do not enable unity builds on VS 15 versions that do not have that file.

Fixes: #20284
2020-02-04 11:46:18 -05:00
Brad King ebea30a1ed CMake 3.15.7 2020-02-04 09:02:13 -05:00
Brad King f972b929d6 Merge topic 'vs-16.4-custom-command-inputs' into release-3.16
58b0674687 VS: Tell VS 16.4 not to verify SYMBOLIC custom command inputs

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4297
2020-01-29 10:36:40 -05:00
Brad King 3c5f0037f7 Merge branch 'vs-16.4-custom-command-inputs' into release-3.15
Merge-request: !4297
2020-01-28 13:59:27 -05:00
Brad King 58b0674687 VS: Tell VS 16.4 not to verify SYMBOLIC custom command inputs
Extend the fix from commit 0578239d3a (VS: Tell VS 16.4 not to verify
SYMBOLIC custom command outputs, 2019-09-23, v3.15.4~2^2) to apply to
SYMBOLIC *inputs* too.  This is needed when there is a chain of custom
commands that use symbolic paths for ordering.

Fixes: #20179
2020-01-28 13:52:05 -05:00
Kyle Edwards 4c8a917a87 file(GET_RUNTIME_DEPENDENCIES): Tolerate empty list arguments
Also list all keywords that were missing values instead of only the
first one.
2020-01-22 13:05:46 -05:00
Brad King 21e60da5bb CMake 3.16.3 2020-01-21 10:17:47 -05:00
Brad King b168d8e855 Merge topic 'autogen_rcc_skip_unity' into release-3.16
086d9b2bab Autogen: Enable SKIP_UNITY_BUILD_INCLUSION on AUTORCC generated files

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Cristian Adam <cristian.adam@gmail.com>
Merge-request: !4237
2020-01-20 11:54:13 -05:00
Craig Scott 582cc710c2 Merge topic 'pch-msvc-no-path-repetition' into release-3.16
07fe1bcd4e PCH: No repeated path for internal generated PCH files (MSVC case)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4236
2020-01-19 15:10:17 -05:00
Sebastian Holtermann 086d9b2bab Autogen: Enable SKIP_UNITY_BUILD_INCLUSION on AUTORCC generated files
`rcc` generated files are not compatible with unity builds, because they
contain classes in anonymous namespaces and static data with identical names.

This patch sets the source file property `SKIP_UNITY_BUILD_INCLUSION` to `On`
on all `AUTORCC` generated files to exclude them from unity build files.

Fixes: #20191 "QT5: Exclude resource files from unity build"
2020-01-17 09:48:35 -05:00
Cristian Adam 07fe1bcd4e PCH: No repeated path for internal generated PCH files (MSVC case)
Fixes: #19952
2020-01-16 17:05:05 +01:00
Brad King 8cd35baae9 Merge topic 'nag-submodule' into release-3.16
f7f60ddcf9 Fortran: Add support for NAG Fortran submodules

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4229
2020-01-16 10:56:02 -05:00
Neil Carlson f7f60ddcf9 Fortran: Add support for NAG Fortran submodules
They use a `.sub` extension.

Fixes: #20220
2020-01-15 14:12:22 -05:00
Cristian Adam 274a6f3699 Unity Build: include language in generated source file name
Fixes: #20206
2020-01-14 18:48:08 +01:00
Brad King e74049b388 Merge topic 'vs-Fortran-link-flags' into release-3.16
a3c827b2ea VS: Add Fortran link flag table entries for /OPT:*

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4210
2020-01-14 09:01:21 -05:00
Pavel Liavonau a3c827b2ea VS: Add Fortran link flag table entries for /OPT:*
Fixes: #20190
2020-01-13 11:14:00 -05:00
Brad King e8462a105e Merge topic 'fix-cpack-deb-description-file' into release-3.16
d491f34a5e CPack: Fix regression in DEB generator description

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4204
2020-01-13 10:23:26 -05:00
Brad King b1a9d49a69 Merge topic 'objc-visibility-inlines' into release-3.16
7347e2f830 ObjC: Add VISIBLITY_INLINES_HIDDEN support

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4199
2020-01-13 10:22:06 -05:00
Kyle Edwards d491f34a5e CPack: Fix regression in DEB generator description
Fixes: #20102
2020-01-10 17:22:52 -05:00
Brad King 9fa8b7d5dd Merge topic 'cuda-device-link-only-cuda' into release-3.16
7ffa42288e Merge branch 'backport-3.15-cuda-device-link-only-cuda'
071c4f1a2a CUDA: Do not device link if target has no CUDA usage

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4191
2020-01-10 13:21:12 -05:00
Cristian Adam 7347e2f830 ObjC: Add VISIBLITY_INLINES_HIDDEN support
Fixes: #20193
2020-01-10 16:31:27 +01:00
Cristian Adam a05b9d4239 ObjC: Add _COMPILE_LAUNCHER support
Fixes: #20178
2020-01-09 11:35:23 -05:00
Brad King 7ffa42288e Merge branch 'backport-3.15-cuda-device-link-only-cuda' 2020-01-09 11:13:51 -05:00
Robert Maynard 071c4f1a2a CUDA: Do not device link if target has no CUDA usage
When CUDA is enabled, and a pure non-CUDA target has
CMAKE_CUDA_SEPARABLE_COMPILATION enabled, don't actually perform
the device linking step, as it will fail. A target that has
CMAKE_CUDA_SEPARABLE_COMPILATION enabled must also have CUDA
usage (either itself, or something it links to).

Fixes: #20182
2020-01-09 11:02:17 -05:00
Kyle Edwards b393b32b4b CTest: Improve error handling when reading resource spec file
Fixes: #20079
2019-12-27 10:53:52 -05:00
Brad King 512ab500f0 CMake 3.16.2 2019-12-19 09:54:31 -05:00
Brad King f9ee055d53 Merge topic 'autogen-no-hh' into release-3.16
7fa7f55230 Autogen: Revert processing of .hh files for compatibility

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4146
2019-12-19 09:52:33 -05:00
Brad King 7fa7f55230 Autogen: Revert processing of .hh files for compatibility
Since commit 4a9154537c (Autogen: Use cmake::IsHeader/SourceExtension
for file type detection, 2019-07-02, v3.16.0-rc1~470^2~4) we process
`.hh` files with `AUTOMOC`.  However, this change can break existing
projects that do not expect the behavior.  Revert it for now.  It can
be restored later via a policy.

Fixes: #20101
2019-12-18 05:34:27 -05:00
Brad King 5b43aa7755 CMake 3.15.6 2019-12-16 10:21:27 -05:00
Brad King dfbe8109b4 Merge topic 'pch-force-include' into release-3.16
c5c218fa0d PCH: Append pch header file to list of forced include files

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4135
2019-12-16 10:04:03 -05:00
Cristian Adam c5c218fa0d PCH: Append pch header file to list of forced include files
Fixes: #20088
2019-12-13 15:21:27 +01:00
Brad King b3a536e726 Merge branch 'backport-3.15-vs-v142-version' into release-3.15
Merge-request: !4133
2019-12-12 11:38:15 -05:00
Brad King d8d4924d98 VS: Fix support for v142 toolset minor versions in VS 16.5+
The fix in commit 5117389931 (VS: Fix support for v142 toolset minor
versions, 2019-10-01, v3.16.0-rc1~32^2) worked around a bug in VS's
placement of toolset files.   VS 16.5 will fix that bug and restore the
original pattern for locations of toolset files.  Update our logic to
look for both possibilities.

Issue: #19779
2019-12-12 11:28:34 -05:00
Brad King 07612646fe VS: Fix support for v142 toolset minor versions in VS 16.5+
The fix in commit 5117389931 (VS: Fix support for v142 toolset minor
versions, 2019-10-01, v3.15.5~6^2) worked around a bug in VS's placement
of toolset files.   VS 16.5 will fix that bug and restore the original
pattern for locations of toolset files.  Update our logic to look for
both possibilities.

Issue: #19779
2019-12-12 11:25:42 -05:00
Brad King 4771c4e447 CMake 3.16.1 2019-12-10 09:40:28 -05:00