Commit Graph

37713 Commits

Author SHA1 Message Date
Brad King aa41fa90fd Merge branch 'gtest_discover_tests_timeout' into release-3.10
Merge-request: !1851
2018-03-15 07:45:05 -04:00
Craig Scott 96fdde26bb GoogleTest: Rename TIMEOUT parameter to avoid clash
In gtest_discover_tests(), the TIMEOUT keyword was making it
impossible to set the TIMEOUT test property via the PROPERTIES
keyword. This would be a frequent case, but it doesn't complain
and instead silently does something different to what would
normally be expected. The TIMEOUT keyword has been renamed
to DISCOVERY_TIMEOUT, thereby removing the clash.

This is a breaking change. 3.10.1 and 3.10.2 were the only versions
that supported the TIMEOUT keyword and uses of it were likely
not working as intended.

Fixes: #17801
2018-03-15 07:36:42 -04:00
Brad King 354a33fdf3 Merge branch 'ccmake-stack-smashing' into release-3.10
Merge-request: !1836
2018-03-13 13:39:32 -04:00
Tianhao Chai 7899e53691 ccmake: fix status line buffer overflow on very wide terminals
A mistyped length calculation will memset across stack frame when
the user's terminal width is larger than 270.
2018-03-13 13:38:12 -04:00
Brad King 760c6c08a5 Merge branch 'autogen-empty-source-file-fix' into release-3.10
There is no corresponding merge request because this fix was
cherry-picked specifically for CMake 3.10.
2018-03-09 06:59:19 -05:00
Sebastian Holtermann 6f2f9ce331 Autogen: Fix for the empty source file crash in 3.10.2
Issue: #17793
2018-03-09 06:51:14 -05:00
Brad King c1e087a9d3 CMake 3.10.2 v3.10.2 2018-01-18 09:53:18 -05:00
Brad King ecfc729ad4 Merge branch 'backport-autogen-nexist-source-fix' into release-3.10
Merge-request: !1650
2018-01-10 13:53:59 -05:00
Sebastian Holtermann d592bfc9f5 Autogen: Ignore not existing source files in cmMakefile
Until CMake 3.10 a list of source files that had the AUTOUIC_OPTIONS property
populated was kept in `cmMakefile::QtUiFilesWithOptions`.  In the process to
remove all AUTOUIC related code from `cmMakefile` for CMake 3.10, the pre
filtered list was replaced by a loop in `cmQtAutoGeneratorInitializer` over
all source files in the `cmMakefile`.  This loop introduced the problem that
file paths were computed for source files that weren't in the target's sources
and that might not even have existed.  If the path for an unused and not
existing file was computed a `cmake::FATAL_ERROR` with the error message
"Cannot find source file:" was thrown nevertheless.
This caused some projects to fail in CMake 3.10.

This patch adds a test for path errors in the loops in
`cmQtAutoGeneratorInitializer` that iterate over all source files in a
`cmMakefile`. If a path error appears, the file is silently ignored.
If the file is part of the target's sources, the path error will still be
caught in the loop over all the target's sources.

This is the fix for CMake 3.10.1.
2018-01-10 19:46:22 +01:00
Brad King 0cfcea334b Merge branch 'backport-kwiml-riscv' into release-3.10
There is no corresponding merge request because this fix was
cherry-picked specifically for CMake 3.10.
2018-01-09 09:57:26 -05:00
Brad King d49986b3b8 KWIML: Backport RISC-V update to CMake 3.10
Backport KWIML commit 6fc81d8816 (abi.h: Update RISC-V support for
revised macro names, 2017-12-30) to the CMake 3.10 release branch.

The upstream RISC-V project changed some compiler symbols so `__riscv__`
must now be renamed `__riscv`.

Patch-by: Richard W.M. Jones <rjones@redhat.com>
2018-01-09 09:52:07 -05:00
Brad King 9559eb7aa7 Merge branch 'FindPostgres_support_for_v10' into release-3.10
Merge-request: !1635
2018-01-09 09:44:56 -05:00
Egor Pugin 9417a6d322 FindPostgreSQL: Add support for PG10 2018-01-09 09:43:41 -05:00
Brad King c69ce01d44 Merge branch 'backport-autogen-nested-lists-fix' into release-3.10
Merge-request: !1606
2017-12-20 08:16:16 -05:00
Sebastian Holtermann 683e9023a7 Autogen: Fix for problematic nested list separator
In the AutogenInfo.cmake file the separator for nested lists was
`@LSEP@` which led to a speed regression because the `@` character
triggered an (unsuccessful) expression evaluation.

By setting the policy version of the CMake instance in the
`_autogen` target to 3.9, the OLD `@` evaluating behavior
controlled by policy CMP0053 is disabled.

Also the nested lists separator string is changed to `<<<S>>>`,
which solves the problem twofold.

Issue: #17570
2017-12-20 08:14:03 -05:00
Brad King 307214c0ee Merge branch 'cmGraphVizWriter_Interface_Dependers' into release-3.10
Merge-request: !1581
2017-12-14 08:06:56 -05:00
Joel T. Frederico 9b4d31dc77 cmGraphVizWriter: Updated to create and follow dependers for interface targets
Generating graphs of dependencies now uses interface targets, but graphs
of dependers did not include interface targets.
2017-12-14 08:03:02 -05:00
Brad King 166bf4c490 CMake 3.10.1 v3.10.1 2017-12-13 08:34:28 -05:00
Brad King 38b4209100 Merge branch 'irsl-msvc-omp-fix' into release-3.10
Merge-request: !1588
2017-12-12 09:33:10 -05:00
Brad King 19d5969d37 Merge branch 'findmpi-builtin-fix' into release-3.10
Merge-request: !1569
2017-12-12 09:31:18 -05:00
Christian Pfeiffer 4dae55fb70 IRSL: Fix MSVC variable deferencing
Fixes: #17529
2017-12-12 15:16:38 +01:00
Christian Pfeiffer d1d8719f62 FindMPI: Fix various legacy problems
This MR fixes a number of bugs stemming from legacy variable handling,
partially introduced by commit v3.10.0-rc1~103^2 (FindMPI: Add support
for FreeBSD and SLES, 2017-08-09).

* `MPI_COMPILE_OPTIONS` and `MPI_COMPILE_DEFINITIONS` legacy hints were not passed correctly.
* Legacy variables could be parsed after they were set by `FindMPI` cause erroneous hinting on subsequent runs.
* In the case of the compiler supporting MPI implicitly:
	* not all consumption variables would be correctly reset.
	* `MPI_<LANG>_HEADER_DIR` would be set unintentionally.
	* `MPI_<LANG>_LIB_NAMES` appeared in cache despite being ignored.
	* on subsequent passes, `MPI_<LANG>_COMPILER` could be corrupted.
* the C-to-CXX copy logic would take place even if `MPI_SKIP_GUESSING` was turned on
* if only some language compilers were given, inconsistent search behavior could be observed

Issue: #17538
2017-12-12 14:20:02 +01:00
Brad King e2303b257c Merge branch 'fix-iar-binutils-for-cxx' into release-3.10
Merge-request: !1572
2017-12-12 08:00:44 -05:00
Islam Amer e4707048c0 IAR: FindBinUtils should work for CXX as well as C
The IAR compiler test works when a project specifies LANGUAGES C CXX
but fails if CXX comes before C. This change makes it work regardless
of the order.
2017-12-12 08:00:16 -05:00
Brad King 3efc6ad2a2 Merge branch 'cuda_darwin_proper_install_names_flags' into release-3.10
Merge-request: !1570
2017-12-08 09:54:31 -05:00
Robert Maynard ce3874b303 CUDA: Shared libraries on Darwin properly setup @rpath install_names
Shared libraries linked with CUDA now properly setup booth the correct
install_name but also specify headerpad_max_install_names so that the names
can be changed post build.
2017-12-07 11:31:03 -05:00
Brad King 066fe644ee Merge branch 'automoc-apple-framework' into release-3.10
Merge-request: !1561
2017-12-07 09:13:45 -05:00
Sebastian Holtermann e4ccc68429 Autogen: Tests: Add test for MacOS frameworks 2017-12-07 09:05:58 -05:00
Sebastian Holtermann fcbd02fd6e Autogen: Fix for AUTOMOC on macOS frameworks in CMake 3.10
Revert the library target dependency forwarding to the `_autogen` target
to the 3.9.6 way, only now using `GetLinkImplementationLibraries`.

Fixes: #17278
2017-12-07 09:04:05 -05:00
Brad King afae027d63 Merge branch 'gtest-discovery-timeout' into release-3.10
Merge-request: !1534
2017-12-07 08:03:11 -05:00
Brad King 05f86af716 Merge branch 'backport-revert-server-target-backtraces' into release-3.10
Merge-request: !1564
2017-12-06 13:46:55 -05:00
Brad King 8b2736c71c server: Revert "Report backtraces in codemodel response"
The backtrace information is very repetitive and hugely increases the
size of the codemodel object.  We need to remove it until an alternative
representation can be developed.  Revert commit v3.10.0-rc1~393^2
(server: Report backtraces in codemodel response, 2017-06-20), except
for the protocol version number (because it indicates other new things).

Unfortunately this is incompatible with clients that expect the
"crossReferences" field in targets.  However, the regression in memory
usage is quite serious, especially on large projects, and therefore
breaks even older clients that do not use backtraces.  Since the
"crossReferences" field was only provided by one release (3.10.0), it is
simplest to revert it outright for 3.10.1.

Fixes: #17502
2017-12-06 11:39:03 -05:00
Matthew Woehlke 935848a8a7 GoogleTest: Add test for missing test executable
Add a test to verify expected behavior when a test executable on which
gtest_discover_tests is invoked was not built. (The test for the newly
added timeout conveniently sets up this situation, so this new test was
almost trivial to add.)
2017-12-06 07:37:48 -05:00
Matthew Woehlke 29731d8919 GoogleTest: Add timeout to discovery
Add a TIMEOUT option to gtest_discover_tests. This provides a
work-around in case a test goes out to lunch, rather than causing the
build to simply hang. (Although this is still a problem with the user's
project, hanging the build is not cool, especially in the case of
automatically running CI builds. It is much preferred that the build
should actively fail in this case, and it is trivially easy for us to
implement that.)
2017-12-06 07:37:48 -05:00
Brad King 0418e91f7d Merge branch 'findmpi-notfound-spam' into release-3.10
Merge-request: !1557
2017-12-05 08:37:10 -05:00
Brad King 64184762f4 Merge branch 'findmpi-found-cond' into release-3.10
Merge-request: !1556
2017-12-05 08:36:52 -05:00
Christian Pfeiffer 2047eb360d FindMPI: Fix multiple configure runs
Due to a erroneous logical dependency on a temporary variable, FindMPI
would depend its FOUND status on the set of flags needed to support
compiler-implicit MPI support after the first configure run.

This behavior is especially causing a misreported NOT FOUND status after
the first run on MPI implementations without MPI compiler like MS-MPI or
MPICH2 on Windows.
2017-12-05 14:17:27 +01:00
Christian Pfeiffer bde7513d2f FindMPI: Correct legacy variable handling
Due to a minor logic error, MPI_LIBRARY, MPI_EXTRA_LIBRARY and
MPI_<LANG>_LIBRARIES hints are currently not correctly handled and
discarded.

Additionally, if either C or CXX aren't enabled, there subsequent calls
to FindMPI will cause cache variables of the sort "MPI_MPI_EXTRA_LIBRARY-NOTFOUND"
to appear due to an error in the compatibility handling. (Doesn't affect
functionality)
2017-12-05 14:14:40 +01:00
Brad King 64713d4ca0 Merge branch 'cpack-pkg-fix' into release-3.10
Merge-request: !1547
2017-12-01 10:53:10 -05:00
Alexander Wittig f25d87db9e CPack: Fix macOS PKG component dependency information
Refactoring in commit v3.7.0-rc1~523^2 (CPack/PackageMaker: port to
cmXMLWriter, 2016-06-08) accidentally broke `distribution.dist`
generation when there are dependencies between components and the pkg
(or the derived productbuild) generator are used.  The resulting
package cannot be installed and instead the Apple Installer app
shows a "Javascript error" message.

The problem is that a `std::ostringstream` is constructed with some
content, but the stream pointer still points to the beginning of the
stream, so subsequent writes overwrite the initial content instead of
appending.
2017-12-01 10:52:55 -05:00
Matthew Woehlke e99e39829b GoogleTest: Improve gtest_discover_tests messages
Adjust the formatting of error messages produced when test discovery
goes wrong, in order to avoid spurious line breaking.
2017-11-30 15:07:52 -05:00
Brad King 085bdf5aad Merge branch 'bootstrap-clang-5' into release-3.10
Merge-request: !1542
2017-11-30 14:02:43 -05:00
Adam Ciarciński 375eca7881 bootstrap: Check support for unordered_map from compiler mode
Some versions of clang 5 (with libc++) have a problem with
`unordered_map` under `-std=gnu++1z`:

    /usr/include/c++/__hash_table:1134:43: error: conflicting types for '__hash_table<_Tp, _Hash, _Equal, _Alloc>'

Include `unordered_map` in our test source so that we reject this
combination and fall back to an older C++ standard flag.

Fixes: #17526
2017-11-30 14:01:26 -05:00
Brad King 79ad921a38 Merge branch 'clang-cl-fix' into release-3.10
Merge-request: !1522
2017-11-28 11:09:53 -05:00
İsmail Dönmez f969f1a9ce Clang: Do not mistake clang-cl 6.0 for GNU-like clang
The check added by commit v3.10.0-rc2~2^2 (Clang: Diagnose unsupported
GNU-like clang targeting MSVC ABI, 2017-10-10) is incorrectly detecting
clang-cl 6.0 as GNU-like.  Currently cmake is testing if the clang
compiler accepts `--version` to see if it accepts GNU style flags.
However, with the latest llvm snapshot this also works for clang-cl:

    > clang-cl --version
    clang version 6.0.0 (trunk)
    Target: x86_64-pc-windows-msvc
    Thread model: posix
    InstalledDir: C:\Program Files\LLVM\bin

So instead we should use the `/?` flag which fails with clang but
works with clang-cl:

    > clang-cl /? &> /dev/null; echo $?
    0
    > clang /? &> /dev/null; echo $?
    1

Fixes: #17518
2017-11-28 17:08:33 +01:00
Brad King 93e7eb7bc5 Merge branch 'cuda-implicit-include-dirs' into release-3.10
Merge-request: !1528
2017-11-27 10:26:52 -05:00
Brad King 2f72573a62 CUDA: Treat /usr/include as an implicit include directory
We already do this for C and C++.

Fixes: #17512
2017-11-27 10:24:13 -05:00
Brad King c2019d7c0c Merge branch 'gtest-fix-discovery' into release-3.10
Merge-request: !1510
2017-11-21 12:05:47 -05:00
Matthew Woehlke 70f9f62da8 GoogleTest: Fix multiple discovery on same target
According to the documentation, tests can be discovered for a target
multiple times by using a different prefix and/or suffix to ensure name
uniqueness. However, while this worked for gtest_add_tests, it did not
work with gtest_discover_tests because the generated file that sets up
the tests was named based only on the target name, and so subsequent
discovery from the same target would clobber earlier discovery.

Fix this by introducing a counter that records how many times discovery
has been used on a target, and use this to generate unique names of the
generated test list files.
2017-11-21 12:05:34 -05:00
Brad King 7746fdb2fe CMake 3.10.0 v3.10.0 2017-11-20 10:27:59 -05:00