Commit Graph

28979 Commits

Author SHA1 Message Date
Kinan Mahdi
3fd07d30bf VS: Enable DOTNET_TARGET_FRAMEWORK properties all target types
This makes them compatible with `VS_PACKAGE_REFERENCES` and, in
particular, fixes nuget package references in combination with install
targets.

Fixes: #20764
2020-06-05 08:01:59 -04:00
Brad King
3414ee155e Merge topic 'reduce-try_compile'
9f3923893c libarchive: Map fixed-size integer types from KWIML as typedefs
d20bf471c8 liblzma: Map fixed-size integer types from KWIML as typedefs
92c4316d81 KWSys: Hard-code try_compile results on Windows
2bc89f1a03 cmSystemTools: Hard-code try_compile results for Windows
d350d4668a libarchive: Hard-code try_compile results for bundled dependencies
bf60ac24ae Source: Assume elf.h does not exist on Windows
f408cc2c40 expat: Remove unused try_compile checks
6c4f3dcd7b Utilities: Update hard-coded try_compile results for third-party libraries

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4848
2020-06-05 07:58:38 -04:00
Brad King
6aa8746810 Merge topic 'msbuild-utf8-enable'
e219527a72 VS: Use StdOutEncoding for VS 16.7 Preview 3 and above
8a7ad923a8 VS: Extract instance version from VS Installer

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4847
2020-06-05 07:57:46 -04:00
Brad King
efac04465c Merge topic 'cuda_clang_separable_error'
b1243201e7 CUDA: Don't RunCMake generate separable compilation tests on Clang
1b4c690543 CUDA: Throw error if CUDA_SEPARABLE_COMPILATION is ON when using Clang

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4827
2020-06-05 07:56:19 -04:00
Kitware Robot
4af0458630 CMake Nightly Date Stamp 2020-06-05 00:01:10 -04:00
Kitware Robot
d0a44e0458 CMake Nightly Date Stamp 2020-06-04 00:01:13 -04:00
Justin Goshi
e219527a72 VS: Use StdOutEncoding for VS 16.7 Preview 3 and above
VS 16.6 added a `StdOutEncoding` setting for custom commands to tell
MSBuild that the output is encoded as UTF-8.  In commit bc877a7e94 (Add
support to indicate UTF-8 custom command pipe output encoding,
2020-04-08) CMake learned to add the setting in anticipation of the VS
16.6 release.  However, when 16.6 was released it had a bug in the
implementation of custom tasks with StdOutEncoding enabled that was
exposed by our test suite.  In commit 5058fb5401 (VS: Drop
StdOutEncoding with VS 16.6 pending investigation, 2020-05-29) we
disabled the setting pending investigation.

The problem is fixed in VS 16.7 Preview 3, so restore use of the
setting when a VS instance of at least that version is detected.

Fixes: #20769
2020-06-03 09:00:41 -04:00
Justin Goshi
8a7ad923a8 VS: Extract instance version from VS Installer 2020-06-03 08:58:29 -04:00
Brad King
bf60ac24ae Source: Assume elf.h does not exist on Windows 2020-06-03 07:48:52 -04:00
Brad King
85a9f056a1 Merge topic 'imported-local-target-alias'
056489d567 add_library/add_executable: allow local alias to imported targets
254f2b9058 Help: add_executable: Add TOC

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4837
2020-06-03 06:12:31 -04:00
Brad King
42e6e29654 Merge topic 'cpack-archive-zip-timestamps'
c339e5380f CPack: Use SOURCE_DATE_EPOCH for all timestamps in archives

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4842
2020-06-03 06:07:16 -04:00
Brad King
05e0ff3c73 Merge topic 'vs-sln-version-16'
b69010b719 VS: Fix .sln support for VS Version Selector with VS 2019

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4844
2020-06-03 06:03:43 -04:00
Kitware Robot
81c8fc9023 CMake Nightly Date Stamp 2020-06-03 00:01:18 -04:00
Raul Tambre
1b4c690543 CUDA: Throw error if CUDA_SEPARABLE_COMPILATION is ON when using Clang
Separable compilation isn't supported yet on Clang.
Let's throw a helpful error instead of confusing errors during the build.
2020-06-02 22:09:10 +03:00
Marc Chevrier
056489d567 add_library/add_executable: allow local alias to imported targets
Fixes: #20641
2020-06-02 17:11:47 +02:00
Brad King
b69010b719 VS: Fix .sln support for VS Version Selector with VS 2019
VS 2019 changed the naming pattern used by 2015 and 2017.

Fixes: #20783
2020-06-02 10:30:33 -04:00
Brad King
961ca77a7a Merge topic 'gitlab-ci-ninja-multi'
e1b2c0108f gitlab-ci: add a Ninja Multi-Config test job
1e8ecfccdd gitlab-ci: also build ncurses and Qt code on Linux
95721f0a82 ci: install ncurses and Qt development into the Fedora 31 image
ed2fe558b0 CursesDialog: resolve clang-tidy warnings
44f1744bed QtDialog: avoid using deprecated APIs

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4832
2020-06-02 09:17:24 -04:00
Brad King
a432b1075c Merge topic 'getdef-expand'
7ed8c9ebe3 cmMakefile: add GetDefExpandList() that splits value into std::vector

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4819
2020-06-02 08:02:24 -04:00
Brad King
fff14290d2 Merge topic 'cmprop'
b36d1bdd9d Single location for cmProp typedef

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4829
2020-06-02 08:00:55 -04:00
Brad King
855a7158ed Merge topic 'target_link_libraries-self-link-is-an-error'
9436ad35df target_link_libraries: self-link through ALIAS is an error

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4826
2020-06-02 07:53:40 -04:00
Brad King
1b0b0c6427 Merge topic 'getdef-nodups'
1e805f53f5 GetDefinition: avoid duplicate calls

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4824
2020-06-02 07:52:14 -04:00
Ben Boeckel
ed2fe558b0 CursesDialog: resolve clang-tidy warnings
Fixes:

  - unnecessary bool expression (cmCursesMainForm)
  - removes a duplicate if/else branch (RegexExplorer)
  - collapses redundant if/else branch logic (CMakeSetupDialog and
    cmCursesStringWidget)
2020-06-02 07:37:56 -04:00
Ben Boeckel
44f1744bed QtDialog: avoid using deprecated APIs 2020-06-02 07:37:56 -04:00
Ben Stone
c339e5380f CPack: Use SOURCE_DATE_EPOCH for all timestamps in archives 2020-06-02 17:27:02 +10:00
Kitware Robot
06f9be47b8 CMake Nightly Date Stamp 2020-06-02 00:01:19 -04:00
Vitaly Stakhovsky
b36d1bdd9d Single location for cmProp typedef 2020-06-01 08:54:20 -04:00
Brad King
e773892ccb Merge topic 'non-coverage-lines'
ed6d20ddcb CTest: Handle non-coverage lines in gcov files

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4822
2020-06-01 07:48:25 -04:00
Brad King
3020decbff Merge topic 'pch-fix-bad-ClearSourcesCache'
902858367f Merge branch 'backport-3.16-pch-fix-bad-ClearSourcesCache'
fa7b041eca PCH: Fix logic error that incorrectly clears sources during VS generation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4815
2020-06-01 07:44:35 -04:00
Brad King
8cf2e1de22 Merge topic 'ninja-multi-export-all-symbols'
6fc4bfa11c Ninja Multi-Config: Fix bug in CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Alex Reinking <alex_reinking@berkeley.edu>
Merge-request: !4825
2020-06-01 07:36:50 -04:00
Kitware Robot
14e25d991b CMake Nightly Date Stamp 2020-06-01 00:01:14 -04:00
Kitware Robot
6e7230f7dd CMake Nightly Date Stamp 2020-05-31 00:01:13 -04:00
Vitaly Stakhovsky
7ed8c9ebe3 cmMakefile: add GetDefExpandList() that splits value into std::vector
Combines cmMakefile:GetDefinition() and cmExpandList()
2020-05-30 08:59:20 -04:00
Marc Chevrier
9436ad35df target_link_libraries: self-link through ALIAS is an error
Fixes: #19617
2020-05-30 11:47:39 +02:00
Kitware Robot
67dd687657 CMake Nightly Date Stamp 2020-05-30 00:01:21 -04:00
Kyle Edwards
6fc4bfa11c Ninja Multi-Config: Fix bug in CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS
Fixes: #20775
2020-05-29 15:28:43 -04:00
Vitaly Stakhovsky
1e805f53f5 GetDefinition: avoid duplicate calls 2020-05-29 13:12:22 -04:00
Tobias Ellinghaus
ed6d20ddcb CTest: Handle non-coverage lines in gcov files
This implements a TODO in gcov file handling.
2020-05-29 16:08:47 +02:00
Brad King
5058fb5401 VS: Drop StdOutEncoding with VS 16.6 pending investigation
The `StdOutEncoding` added to `.vcxproj` files since commit bc877a7e94
(Add support to indicate UTF-8 custom command pipe output encoding,
2020-04-08) breaks custom commands with symbolic outputs on VS 16.6.0.
Disable it pending further investigation and possibly a fix in VS.

Issue: #20769
2020-05-29 08:24:14 -04:00
Brad King
25b63e06a1 Merge topic 'alias-cannot-overwrite-another-target'
1eca5993e2 ALIAS target: cannot overwrite an existing target

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4810
2020-05-29 07:14:25 -04:00
Brad King
ce7570e21a Merge topic 'bugfix-gcev'
d606b19f7d server-mode: Fix regression in cache entry reporting

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4808
2020-05-29 07:13:22 -04:00
Brad King
902858367f Merge branch 'backport-3.16-pch-fix-bad-ClearSourcesCache' 2020-05-29 06:14:59 -04:00
Brad King
fa7b041eca PCH: Fix logic error that incorrectly clears sources during VS generation
Since commit 729d997f10 (Precompile Headers: Add REUSE_FROM signature,
2019-08-30, v3.16.0-rc1~101^2), `GetPchFileObject` handles the case that
it is called first for another target's `REUSE_FROM` by calling
`AddSource` to make sure `GetObjectName` can produce the correct object
name.  However, `AddSource` causes `ClearSourcesCache` to be called,
which since commit a9f4f58f0c (cmGeneratorTarget: Clear AllConfigSources
in ClearSourcesCache, 2020-05-15, v3.16.7~2^2) now correctly erases the
`AllConfigSources` structure.  This is okay during `AddPchDependencies`,
but there is another code path in which it is problematic.

When the Visual Studio generator's `WriteAllSources` method is looping
over the sources, the `cmake_pch.cxx` source is encountered first.  This
causes `OutputSourceSpecificFlags` to call `GetPchCreateCompileOptions`,
which calls `GetPchFile`, which under MSVC with `CMAKE_LINK_PCH` calls
`GetPchFileObject`.  That leads to `ClearSourcesCache` erasing the
structure over which `WriteAllSources` is iterating!

This bug is caught by our `RunCMake.PrecompileHeaders` test when run
with the VS generator as of the commit that exposed it by fixing
`ClearSourcesCache`.  However, that change was backported to the CMake
3.16 series after testing only with later versions versions that contain
commit a55df20499 (Multi-Ninja: Add precompile headers support,
2020-01-10, v3.17.0-rc1~136^2).  By adding proper multi-config support
for PCH, that commit taught `cmLocalGenerator::AddPchDependencies` to
call `GetPchFile` with the real set of configurations instead of just
the empty string.  This allows the `GetPchFile` cache of PCH sources to
be populated up front so that the later calls to it in the
`WriteAllSources` loop as described above do not actually call
`GetPchFileObject` or `ClearSourcesCache`.  That hid the problem.

Fix this by re-ordering calls to `AddPchDependencies` to handle
`REUSE_FROM` targets only after the targets whose PCH they re-use.
Remove the now-unnecessary call to `AddSource` from `GetPchFileObject`
so that `ClearSourcesCache` is never called during `WriteAllSources`.
Update the PchReuseFrom test case to cover an ordering of targets that
causes generators to encounter a `REUSE_FROM` target before the target
whose PCH it re-uses.

Fixes: #20770
2020-05-29 05:52:03 -04:00
Kitware Robot
da87557024 CMake Nightly Date Stamp 2020-05-29 00:01:19 -04:00
Marc Chevrier
1eca5993e2 ALIAS target: cannot overwrite an existing target
Fixes: #19616
2020-05-28 12:56:59 -04:00
Brad King
e647949539 CMake 3.17.3 2020-05-28 06:57:26 -04:00
Brad King
5fa7276489 Merge topic 'update-kwsys'
9c161cc2d0 Merge branch 'upstream-KWSys' into update-kwsys
c47501bcca KWSys 2020-05-27 (a3263389)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4804
2020-05-28 06:54:50 -04:00
Brad King
262ecc99d0 Merge topic 'multi-ninja-pch-object-library'
1f791eb160 Multi-Ninja: Fix reusable PCHs for MSVC

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Alexej Harm <alexej.h@xiphos.de>
Merge-request: !4787
2020-05-28 06:53:59 -04:00
Vitaly Stakhovsky
d606b19f7d server-mode: Fix regression in cache entry reporting
Refactoring in commit 0bf0e35e59 (cmCacheManager::GetProperty: return
cmProp, 2020-03-19) changed the return type of GetCacheEntryValue.
Update the server mode's call site accordingly.
2020-05-28 06:46:10 -04:00
Kitware Robot
2d90ec54a0 CMake Nightly Date Stamp 2020-05-28 00:01:15 -04:00
Cristian Adam
1f791eb160 Multi-Ninja: Fix reusable PCHs for MSVC
Fixes: #20721
2020-05-27 14:19:03 -04:00