Commit Graph

46911 Commits

Author SHA1 Message Date
Thomas Bernard
35a29ec827 llvm-rc: Restore include path for data after explicit preprocessing
Since commit 1c2d031cbd (Add -E cmake_llvm_rc to preprocess files for
llvm-rc, 2020-01-14, v3.17.0-rc1~24^2) with llvm-rc we explicitly
preprocess RC source files and then compile separately without -I flags.
This broke cases where the RC source references data files adjacent to
itself or in the include path.

This change adds the expansion of the include paths when calling the
llvm-rc in order for the resource files to be picked up correctly by
llvm-rc.  Since the RC compiled file is first preprocessed, the file
being compiled by llvm-rc resides in the build directory. In order for
llvm-rc to find the resource data specified relative to the .rc file
being compiled, the source file path is preppended in the include list
so that the original source path takes priority over all the other
includes paths specified.

A space was added in the CMAKE_INCLUDE_FLAG_RC to make the include
directive work properly for llvm-rc. Checks on the rc.exe showed that
the syntax change doesn't affect it's proper operation.

Fixes: #20529
2020-04-06 21:19:12 +02:00
Brad King
42cefc6bc1 Merge topic 'llvm_rc_pp' into release-3.17
4bef0e6450 llvm-rc: Enable preprocessing if CMAKE_RC_COMPILER_INIT is an absolute path

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4535
2020-03-30 13:22:02 -04:00
Craig Scott
e5eb4108a0 Merge topic 'ninja-multi-doc-variable-update' into release-3.17
c8fd26eb57 Help: Move Ninja Multi-Config variable details into their respective pages

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4532
2020-03-28 03:05:10 -04:00
Lucas Wang
4bef0e6450 llvm-rc: Enable preprocessing if CMAKE_RC_COMPILER_INIT is an absolute path
`CMAKE_RC_COMPILER_INIT` and `CMAKE_RC_COMPILER` can be set by user,
for example `llvm-rc-10` and `D:\LLVM\bin\llvm-rc.exe`.
2020-03-27 08:54:58 -04:00
Brad King
b835c5d5c9 Merge topic 'ctest-timeout-report' into release-3.17
7fda917fa4 CTest: Fix reported duration on timeout when grindchild keeps pipes open

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4530
2020-03-27 07:46:14 -04:00
Brad King
efb2a9f093 Merge topic 'vs-clangcl' into release-3.17
f3d7a15010 VS: Fix ClangCL toolset compiler path detection

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4523
2020-03-27 07:45:15 -04:00
Brad King
311848f790 Merge topic 'FindPython-variable-spelling-error' into release-3.17
63580668a8 FindPython: fix variable spelling error

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4529
2020-03-27 07:44:12 -04:00
Brad King
f6c3820549 Merge topic 'CheckIPOSupported-cleanup-cache' into release-3.17
4b8297721f CheckIPOSupported: Avoid polluting cache with common name 'result'

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kyle Edwards <kyle.edwards@kitware.com>
Merge-request: !4528
2020-03-27 07:43:02 -04:00
Brad King
1915a09884 Merge topic 'nmc-cl-showincludes' into release-3.17
6c7e6b1e49 Ninja Multi-Config: Fix MSVC showincludes prefix detection

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kyle Edwards <kyle.edwards@kitware.com>
Merge-request: !4526
2020-03-27 07:41:57 -04:00
Brad King
2fe8ea555e Merge topic 'llvm-rc-stderr' into release-3.17
dc93cbb0d8 llvm-rc: Print stderr output when calling tools through cmake_llvm_rc

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4525
2020-03-27 07:39:29 -04:00
Brad King
032df7ae7b Merge topic 'llvm-rc-depfile' into release-3.17
2c724c3aea llvm-rc: Write depfile to location specified by the generator
4cc876540e llvm-rc: Select preprocessor from active languages

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4524
2020-03-27 07:38:22 -04:00
Brad King
0af3a9b755 Merge topic 'make-nested-silent' into release-3.17
d6d9da5178 Makefiles: Fix silencing of nested calls for GNU make 4.3

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4515
2020-03-27 07:35:12 -04:00
Kyle Edwards
c8fd26eb57 Help: Move Ninja Multi-Config variable details into their respective pages 2020-03-26 15:33:48 -04:00
Brad King
7fda917fa4 CTest: Fix reported duration on timeout when grindchild keeps pipes open
Since commit d1976cd1f2 (CTest: Fix timeout when grandchild keeps pipes
open, 2020-01-13, v3.17.0-rc1~169^2) we no longer hang, but the test
duration we report after the timeout is the amount of time the immediate
child ran before exiting.  Fix the logic to instead report the actual
amount of time we spent monitoring the test before the timeout.

Fixes: #20509
2020-03-26 14:35:54 -04:00
Marc Chevrier
63580668a8 FindPython: fix variable spelling error 2020-03-26 18:08:25 +01:00
Brad King
4b8297721f CheckIPOSupported: Avoid polluting cache with common name 'result'
Fixes: #20508
2020-03-26 12:57:07 -04:00
Brad King
6c7e6b1e49 Ninja Multi-Config: Fix MSVC showincludes prefix detection
Activate the detection logic for this generator too.

Fixes: #20506
2020-03-26 08:47:36 -04:00
Brad King
f3d7a15010 VS: Fix ClangCL toolset compiler path detection
Prior to commit 3c125c6de0 (VS: Support Visual Studio Clang Toolkit
identification, 2019-12-03, v3.17.0-rc1~341^2) using `-T ClangCL`
would work but `CMAKE_{C,CXX}_COMPILER` would be detected as `cl.exe`
even though `clang-cl.exe` is the actual compiler.  That commit
attempted to fix the detection by using `$(ClangClExecutable)`
as we do for LLVM-distributed toolsets, but that is not actually
defined.  Instead, look for `$(CLToolExe)` in the `PATH`.

Fixes: #20504
2020-03-26 08:18:25 -04:00
Thomas Bernard
dc93cbb0d8 llvm-rc: Print stderr output when calling tools through cmake_llvm_rc
The stored error pipe is output if the program fails.

Fixes: #20494
2020-03-26 07:59:55 -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
Thomas Bernard
2c724c3aea llvm-rc: Write depfile to location specified by the generator
Move the depfile flags to `CMAKE_DEPFILE_FLAGS_RC` so that they
are only usedwith generators that use depfiles.  Also switch to
using the `<DEPFILE>` placeholder for the location of the depfile
so that it goes where the generator expects.

Fixes: #20493
2020-03-26 07:26:21 -04:00
Thomas Bernard
4cc876540e llvm-rc: Select preprocessor from active languages
The llvm-rc preprocessor is selected according to the
CMAKE_C_COMPILER_ID / CMAKE_CXX_COMPILER_ID which are only defined when
the C or CXX language is active.
2020-03-26 07:25:33 -04:00
Brad King
d14626afe5 Merge topic 'FindPython-polish' into release-3.17
bf1ecfef7f FindPython: misc. fixes

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4519
2020-03-25 08:13:06 -04:00
Marc Chevrier
bf1ecfef7f FindPython: misc. fixes
Help: Fix errors regardings HINTS.
Code: Optimize Python signature cache variable to avoid unecessary searchs.
2020-03-24 18:26:16 +01:00
Brad King
c1ad4a74d4 Merge topic 'doc-typo' into release-3.17
356c7cec2c Help: Fixed typo in CMAKE_INSTALL_RPATH_USE_LINK_PATH.rst

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4516
2020-03-23 10:54:41 -04:00
Jaak Ristioja
356c7cec2c Help: Fixed typo in CMAKE_INSTALL_RPATH_USE_LINK_PATH.rst
Signed-off-by: Jaak Ristioja <jaak@ristioja.ee>
2020-03-23 09:46:08 -04:00
Brad King
170087f065 Merge topic 'cmake-gui-open-check' into release-3.17
ecc0086bfc cmake-gui: Fix use-after-free in Open-possible check

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4508
2020-03-23 09:27:43 -04:00
Francisco Facioni
ecc0086bfc cmake-gui: Fix use-after-free in Open-possible check
Fix `QCMake::checkOpenPossible` to copy `toLocal8Bit().data()` before
its lifetime expires.
2020-03-20 08:38:31 -04:00
Brad King
e3185e3d1b CMake 3.17.0 2020-03-20 06:26:14 -04:00
Brad King
dfca1887b0 Merge topic 'FindMatlab-r2020' into release-3.17
75331a4578 FindMatlab: Add R2020a=9.8

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4507
2020-03-20 06:22:48 -04:00
Brad King
3ab89b5475 Merge topic 'GetPrerequisites-vcruntime-is-system' into release-3.17
417b765f5a GetPrerequisites: Classify vcruntime libraries as system

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4506
2020-03-20 06:17:49 -04:00
Brad King
119d1dadce Merge topic 'export-repeat' into release-3.17
8affe9aa33 export: Fix use-after-free on multiple calls overwriting same FILE

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4494
2020-03-20 06:17:00 -04:00
Michael Hirsch, Ph.D
75331a4578 FindMatlab: Add R2020a=9.8
This allows Matlab R2020a to be recognized as a valid Matlab version.
2020-03-19 12:47:10 -04:00
Err0rC0deX
417b765f5a GetPrerequisites: Classify vcruntime libraries as system
Previously GetPrerequisites classified `vcruntime*.dll` as type "other".
They should be classified as type "system".
2020-03-19 10:17:40 -04:00
Brad King
8fad32f5b9 Merge topic 'trace-format-json-doc' into release-3.17
1994f950ff cmake: List valid values for --trace-format on the command line
e39766d84a Help: Fix documentation of --trace-format parameter

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4500
2020-03-19 06:57:51 -04:00
Brad King
8affe9aa33 export: Fix use-after-free on multiple calls overwriting same FILE
CMake 3.16 and below allow multiple `export()` calls with the same output
file even without using `APPEND`.  The implementation worked by accident
by leaking memory.  Refactoring in commit 5444a8095d (cmGlobalGenerator:
modernize memrory managemenbt, 2019-12-29, v3.17.0-rc1~239^2) cleaned up
that memory leak and converted it to a use-after-free instead.

The problem is caused by using the `cmGlobalGenerator::BuildExportSets`
map to own `cmExportBuildFileGenerator` instances.  It can own only
one instance per output FILE name at a time, so repeating use of the
same file now frees the old `cmExportBuildFileGenerator` instance
and leaves the pointer in the `cmMakefile::ExportBuildFileGenerators`
vector dangling.  Move ownership of the instances into `cmMakefile`'s
vector since its entries are not replaced on a repeat output FILE.

In future work we should introduce a policy to error out on this case.
For now simply fix the use-after-free to restore CMake <= 3.16 behavior.

Fixes: #20469
2020-03-19 06:41:39 -04:00
Kyle Edwards
1994f950ff cmake: List valid values for --trace-format on the command line 2020-03-18 16:16:46 -04:00
Kyle Edwards
e39766d84a Help: Fix documentation of --trace-format parameter 2020-03-18 16:02:04 -04:00
Brad King
9abc99e905 Merge topic 'FindPython-version-validation-fix' into release-3.17
cc7f116cb4 FindPython: fix regression on version validation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4492
2020-03-18 07:54:23 -04:00
Marc Chevrier
cc7f116cb4 FindPython: fix regression on version validation
In commit 3dab4682f6 (FindPython: reduces consumption of resources,
2020-02-10, v3.17.0-rc1~11^2) we accidentally broke the python
executable version validation when the "LOCATION" strategy is used
with the plain `FindPython` module.  Fix the logic and add test
cases covering those combinations.

Fixes: #20465
2020-03-17 10:08:34 -04:00
Brad King
b145196bf2 Merge topic 'FindThreads-doc' into release-3.17
1502f281dd FindThreads: Improve documentation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4480
2020-03-17 07:51:24 -04:00
Rolf Eike Beer
1502f281dd FindThreads: Improve documentation
Issue: #19823
2020-03-16 11:46:38 -04:00
Brad King
02fa6fd134 Merge topic 'generated-byproducts-docs' into release-3.17
3eb2b62d21 Help: Expand discussion of GENERATED / BYPRODUCTS
1853c7f571 Help: Add missing word in AUTOGEN_TARGET_DEPENDS.rst

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4472
2020-03-12 12:58:46 -04:00
FeRD (Frank Dana)
3eb2b62d21 Help: Expand discussion of GENERATED / BYPRODUCTS
- Mention the Makefile Generators' `make clean` removal in the
  BYPRODUCTS section of add_custom_command and add_custom_target
- Expand the GENERATED property docs' description of which files will
  be marked with the property, and of what it implies (including
  `make clean` removal)
2020-03-12 11:55:10 -04:00
FeRD (Frank Dana)
1853c7f571 Help: Add missing word in AUTOGEN_TARGET_DEPENDS.rst 2020-03-12 11:55:10 -04:00
Brad King
1ec72e0947 CMake 3.17.0-rc3 2020-03-12 09:45:24 -04:00
Brad King
c852c0d138 Merge topic 'apple-clang-flags-c++17' into release-3.17
a67f2d00d8 Apple Clang: add flags for C++17 standard

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4468
2020-03-12 09:33:18 -04:00
Brad King
d584d01103 Merge topic 'swift-link-line-spaces' into release-3.17
af39d1b993 Swift: Fix quoting of library search paths with spaces

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4469
2020-03-12 09:32:01 -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
3cf22df42e Merge topic 'ctest-curl-debugfunction' into release-3.17
7a1cce210b CTest: Fix our internal CURL_DEBUGFUNCTION to conform to CURL docs

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4459
2020-03-12 08:19:43 -04:00