Commit Graph

43990 Commits

Author SHA1 Message Date
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
2a5e5b25ba CMake 3.15.5 v3.15.5 2019-10-30 09:44:41 -04:00
Brad King
08173075c1 Merge branch 'doc-genex-tweak' into release-3.15
Merge-request: !3939
2019-10-21 10:26:48 -04:00
Alan W. Irwin
c684db4ea8 Help: Fix COMPILE_LANG_AND_ID genex example
Fix the `COMPILE_LANGUAGE/CXX_COMPILER_ID` variant of the example to
have the same meaning as the `COMPILE_LANG_AND_ID` variant.  The
inconsistency was introduced by commit 808b818063 (Genex: CompileLang
and CompileLangAndId now match against a list of ids, 2019-05-30,
v3.15.0-rc1~11^2~1).

Fixes: #19862
2019-10-21 10:25:41 -04:00
Brad King
83dbef1135 Merge branch 'InstallRequiredSystemLibraries-redist' into release-3.15
Merge-request: !3909
2019-10-11 12:08:27 -04:00
Brad King
ecbf6546d7 IRSL: Install vcruntime140_1.dll if available
VS 2019 now distributes this additional runtime DLL with its `14.2x`
toolsets.

Fixes: #19829
2019-10-11 12:05:51 -04:00
Brad King
2eecd1c3bc IRSL: Prefer MSVC runtime libraries from newest toolset first 2019-10-11 11:57:39 -04:00
Brad King
881bca249d Merge branch 'vs-v142-csharp-flags' into release-3.15
Merge-request: !3908
2019-10-11 11:18:41 -04:00
Brad King
bbf216fb6b VS: Add toolset v142 CSharp flag table
While the flag tables for C and C++ were generated from MSBuild `.xml`
files, the CSharp flag tables were written by hand.  Copy the `v141`
flag table to use for the `v142` toolset.

Remove the special case added by commit 626c51f47b (VS: Update for
Visual Studio 2019 Preview 2, 2019-01-24, v3.14.0-rc1~74^2) that mapped
the v142 flag table lookup to v141 since we now have the real v142
table.

Fixes: #19828
2019-10-11 11:11:20 -04:00
Brad King
dec3e9363e Merge branch 'backport-vs-16.4-global-targets' into release-3.15
Merge-request: !3896
2019-10-07 17:51:51 -04:00
Brad King
ac1a1bf18b VS: Tell VS 16.4 not to verify CMake-provided custom command outputs
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
outputs in CMake-provided targets like `install`.  Simply mark these
outputs as `SYMBOLIC` too since they are not actually generated.

Fixes: #19737
2019-10-07 17:44:32 -04:00
Brad King
b21e4e4a15 Merge branch 'backport-xcode-scheme-custom-target' into release-3.15
Merge-request: !3878
2019-10-02 08:25:27 -04:00
Brad King
ac9934406d Xcode: Restore CMAKE_XCODE_GENERATE_SCHEME for custom targets
The target property introduced by commit 413b71485a (Xcode: Create Xcode
schemes per target, 2019-03-11, v3.15.0-rc1~347^2) was accidentally not
initialized by `CMAKE_XCODE_GENERATE_SCHEME` for custom targets.  Fix it
and update the test.

Fixes: #19759
2019-10-02 08:17:32 -04:00
Brad King
f695b6b3bb Merge branch 'vs-v142-version' into release-3.15
Merge-request: !3874
2019-10-01 11:41:32 -04:00
Brad King
5117389931 VS: Fix support for v142 toolset minor versions
When using `-T v142,version=14.22` the `.props` file location is
different starting with version `14.20` than it was in `14.16` and
below.  Adapt the path based on the version.

Fixes: #19779
2019-10-01 11:39:38 -04:00
Brad King
6fb747a01c CMake 3.15.4 v3.15.4 2019-09-30 15:30:00 -04:00
Brad King
e7637a3d1a Merge branch 'backport-3.15-fix-EXCLUDE_FROM_ALL-subdir-all' into release-3.15
Merge-request: !3863
2019-09-30 10:29:11 -04:00
Brad King
013d7dd484 Help: Mention 3.14.7 EXCLUDE_FROM_ALL fix in 3.15.4 release note 2019-09-30 09:20:55 -04:00
Brad King
61103c0bac Merge branch 'backport-3.14-fix-EXCLUDE_FROM_ALL-subdir-all' 2019-09-30 09:20:40 -04:00
Brad King
1fe4501592 Help: Add release note for EXCLUDE_FROM_ALL fix in 3.15.4 2019-09-30 09:20:35 -04:00
Brad King
05d7ca14e9 Merge branch 'backport-3.14-fix-EXCLUDE_FROM_ALL-subdir-all' 2019-09-30 09:19:21 -04:00
Brad King
62d45d91e8 Help: Add release note for EXCLUDE_FROM_ALL fix in 3.14.7 2019-09-30 09:18:20 -04:00
Brad King
b3b1c7bf3a Restore "all" target in subdirectories marked EXCLUDE_FROM_ALL
The "all" target in each directory is supposed to have targets from that
directory even if the directory itself is marked `EXCLUDE_FROM_ALL` in
its parent.  This was broken by commit dc6888573d (Pass EXCLUDE_FROM_ALL
from directory to targets, 2019-01-15, v3.14.0-rc1~83^2) which made the
participation of a target in "all" independent of context.  Revert much
of the logic change from that commit to restore the old behavior.  Then
re-implement the behavior intended by the commit to keep its test
working.  Extend the test to cover the old behavior too.

Fixes: #19753
2019-09-30 09:18:20 -04:00
Brad King
156b56480a Makefiles: Revert "Make build root targets ... recursive"
Revert the main logic change from commit 827da1119e (Makefiles: Make
build root targets "all", "clean" and "preinstall" recursive,
2019-05-17, v3.15.0-rc1~96^2~2) for the "all" and "preinstall" targets.

The commit cleaned up the Makefile generator to use the same logic for
the "all" target in the top-level directory as for subdirectories.  It
exposed a long-existing bug that caused the "all" target in a
subdirectory to include the "all" targets from sub-subdirectories even
if they are marked `EXCLUDE_FROM_ALL`.  The `Tests/SubDir` test should
fail but the problem is currently covered up by another bug introduced
by commit dc6888573d (Pass EXCLUDE_FROM_ALL from directory to targets,
2019-01-15, v3.14.0-rc1~83^2) that causes the "all" targets in
`EXCLUDE_FROM_ALL` subdirectories to be empty.

Revert the top-level "all" and "preinstall" targets to the old approach
to prepare to fix the latter bug without exposing the long-existing bug
at the top-level.  Leave the "clean" target in the new approach because
it does not honor `EXCLUDE_FROM_ALL` anyway.

Issue: #19753
2019-09-27 14:15:00 -04:00
Brad King
cf01d3d2bd Tests: Clarify target names in RunCMake.add_subdirectory ExcludeFromAll
Rename the `baz` target to `subinc` to clarify that its role is to be
included even though it is in an otherwise excluded subdirectory.
2019-09-26 14:58:26 -04:00
Brad King
21442d72a4 Tests: Revise RunCMake.add_subdirectory ExcludeFromAll to avoid globbing
Also simplify the clean step.
2019-09-26 14:57:40 -04:00
Brad King
0cfbd85e7b Tests: Teach RunCMake to support a custom working directory 2019-09-24 14:10:34 -04:00
Brad King
5a35a9c70d Merge branch 'vs-16.4-custom-commands' into release-3.15
Merge-request: !3860
2019-09-24 10:46:13 -04:00
Brad King
0578239d3a VS: Tell VS 16.4 not to verify SYMBOLIC custom command outputs
VS 16.4 introduces an additional check on `CustomBuild` rules that warns
if the outputs of the command are not created.  However, CMake supports
marking outputs with the `SYMBOLIC` property to indicate that they will
not actually be generated.  That property is used by Makefile and Ninja
generators but has not been needed by the VS generators before.  Teach
the VS generator to disable `VerifyInputsAndOutputsExist` in custom
build rules that have a symbolic output.

Fixes: #19737
2019-09-24 10:41:20 -04:00
Brad King
2f702beca1 Merge branch 'doc-vs-2019-toolset' into release-3.15
Merge-request: !3841
2019-09-20 10:04:46 -04:00
LE GARREC Vincent
67f3dda69b Help: Document VS 2019 toolset in MSVC_TOOLSET_VERSION 2019-09-20 09:11:40 -04:00
Brad King
26a0e200e5 CMake 3.15.3 v3.15.3 2019-09-04 09:50:07 -04:00
Brad King
7a8bd12926 Merge branch 'FindBoost-1.71' into release-3.15
Merge-request: !3780
2019-09-04 09:10:57 -04:00
Brad King
907d3ed824 FindBoost: Tolerate future Boost INTERFACE libraries
Since commit 0dd6772a89 (FindBoost: Add legacy variables and targets for
compatibility, 2019-06-14, v3.15.0-rc2~3^2~1) we query imported targets
provided by `BoostConfig.cmake` for their `IMPORTED_LOCATION_<cfg>`.
Querying this property is not allowed on INTERFACE libraries, so add a
condition to avoid doing so in case Boost adds one in the future.

Suggested-by: Alexander Grund <alexander.grund@tu-dresden.de>
Issue: #19656, #19402
2019-09-04 09:09:31 -04:00
Brad King
2d357b7a68 FindBoost: Clarify role of legacy variables in warning message
Revise the wording of the warning added by commit 0dd6772a89 (FindBoost:
Add legacy variables and targets for compatibility, 2019-06-14,
v3.15.0-rc2~3^2~1) to refer to the old variables as "legacy" rather
than "standard".

Suggested-by: Alexander Grund <alexander.grund@tu-dresden.de>
Issue: #19402
2019-09-04 09:09:31 -04:00
Brad King
3b8fa496e7 Merge branch 'FindBoost-1.71' into release-3.15
Merge-request: !3763
2019-08-30 14:54:30 -04:00
Brad King
7828577065 FindBoost: Add support for Boost 1.71
Run `Utilities/Scripts/BoostScanDeps.cmake` with the Boost 1.71.0
sources to compute dependencies.  They are the same as Boost 1.70.

Fixes: #19658
2019-08-30 14:51:20 -04:00
Brad King
cf29fa18c8 FindBoost: Unwrap compatibility INTERFACE targets for legacy variables
Since commit 0dd6772a89 (FindBoost: Add legacy variables and targets for
compatibility, 2019-06-14, v3.15.0-rc2~3^2~1) we extract information
from imported targets provided by upstream `BoostConfig.cmake` files.
However, upstream Boost 1.71 provides some imported targets only for
compatibility.  They are just INTERFACE libraries that wrap around the
real target named by `INTERFACE_LINK_LIBRARIES`.  Unwrap this layer so
we can extract the real imported location.

Fixes: #19656
2019-08-30 14:51:03 -04:00
Brad King
d7df3cd73f FindBoost: Remove incorrect 1.70 timer dependency
Running `Utilities/Scripts/BoostScanDeps.cmake` with the Boost 1.70.0
sources shows that the `timer` component no longer depends on `system`.
This is consistent with upstream Boost Timer commit `43eecbd071`.
2019-08-30 14:51:03 -04:00
Brad King
8ff43de1a5 FindBoost: Simplify conditional block for last known version
A version newer than we know about will be large enough to enter the
block for the last known version so we can put the warning there.
2019-08-30 14:51:03 -04:00
Brad King
1ae24ee108 Merge branch 'fileapi-CMP0037-OLD' into release-3.15
Merge-request: !3760
2019-08-30 10:21:29 -04:00
Brad King
9da1c33cf1 fileapi: Fix codemodel v2 target file name for CMP0037 OLD behavior
With CMP0037 OLD behavior, executable and library target names may
contain a slash.  Avoid constructing file names with slashes.

Fixes: #19653
2019-08-30 10:20:12 -04:00
Brad King
aeeccc3b15 Merge branch 'backport-find-no-name' into release-3.15
Merge-request: !3751
2019-08-28 11:28:59 -04:00
Brad King
4c8760c9fb find_path: Fix crash on empty old-style list of names
Fixes: #19651
2019-08-28 11:18:53 -04:00
Brad King
1d953058a2 Merge branch 'autogen_fix_use_after_move' into release-3.15
Merge-request: !3745
2019-08-27 10:25:53 -04:00
Sebastian Holtermann
e32f70036c Autogen: Fix AUTOUIC segfault, when file includes colliding ui_*.h file
This fixes a case of use after move of a `std::shared_ptr` in `AUTOUIC`.

It triggered a segfault, when the error message for colliding `ui_*.h`
includes in different files was computed.
2019-08-27 10:17:33 -04:00
Brad King
1d68639654 Merge branch 'alpine-cpu_zero' into release-3.15
Merge-request: !3740
2019-08-27 10:11:37 -04:00
Brad King
6157c0fe84 Merge branch 'cmGlobalGenerator-compilerId-lifetime' into release-3.15
Merge-request: !3741
2019-08-27 10:11:29 -04:00
Brad King
dd6154ca19 Merge branch 'libarchive-requirement' into release-3.15
Merge-request: !3737
2019-08-27 10:11:16 -04:00
Brad King
b0566f62eb Merge branch 'ninja_additional_clean_files_custom_target' into release-3.15
Merge-request: !3739
2019-08-27 10:11:06 -04:00