Commit Graph

6583 Commits

Author SHA1 Message Date
Brad King
3143e9ffc5 Merge topic 'project-version-0'
0ba5891ead project: Keep leading `0` in PROJECT_VERSION components
5f84669806 Tests: Factor out RunCMake.project helper macro into module
b1f387a7ea Refactor: Use raw string literals instead of escaping
41b85968d8 Refactor: Use initializer lists instead of `push_back` series
45e85dd2b2 Refactor: Add some `const` to vars
90f91e4d21 Refactor: Replace a "magic" number w/ a named constant
638383c38f Refactor: Eliminate one-time-used variables
9b6a53292f Refactor: Eliminate `sep` from the loop

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3517
2019-07-17 07:28:05 -04:00
Brad King
3f84ff212c Merge topic 'find_package-fix-NO_MODULE'
f2edccea66 find_package: Fix NO_MODULE under CMAKE_FIND_PACKAGE_PREFER_CONFIG

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3557
2019-07-17 07:20:20 -04:00
Cristian Adam
f2edccea66 find_package: Fix NO_MODULE under CMAKE_FIND_PACKAGE_PREFER_CONFIG
The module mode fallback added by commit 22e65d10c1 (find_package: Fixed
CMAKE_FIND_PACKAGE_PREFER_CONFIG Module fallback, 2019-06-13,
v3.15.0-rc2~6^2) should not be used unless the `find_package` call
allows module mode.  Doing so can lead to infinite recursion if a find
module tries to call config mode with `find_package(...  NO_MODULE)`.
Fix the logic and add a test case.

Fixes: #19478
2019-07-16 09:09:24 -04:00
Alex Turbov
0ba5891ead project: Keep leading 0 in PROJECT_VERSION components
Introduce CMake policy `CMP0096` to make `project()` keep leading zeros
in version components.  As a side effect, it now allows really long
version numbers.

Fixes: #19421
Co-Author: Brad King <brad.king@kitware.com>
2019-07-16 07:48:40 -04:00
Brad King
c2c3d22504 Tests: Drop RunCMake workaround for AIX ld warnings about GNU atexit
Drop the filtering added by commit e22c45d4c9 (Tests: Teach RunCMake to
ignore AIX ld warnings about GNU atexit, 2018-02-28, v3.12.0-rc1~419^2~6).
It is no longer needed now that we compute our own exports on AIX and
do not get these warnings when using shared libraries.
2019-07-15 13:27:16 -04:00
Brad King
9f5c2040bf AIX: Explicitly compute executable exports for both XL and GNU
On AIX, symbols in executables must be exported in order to be visible
to modules (plugins) they load via `dlopen`.  Prior to policy `CMP0065`,
CMake linked all executables with flags to export symbols, but the NEW
behavior for that policy is to do so only for executables that have the
`ENABLE_EXPORTS` target property set.  In both cases, CMake has always
used the AIX linker option `-bexpall` option to export symbols from
executables.

This has worked fairly well with the XL compiler, but with the GNU
compiler it works only for C ABI symbols.  The reason is that `-bexpall`
does not export symbols starting in `_` but the GNU C++ ABI mangles all
symbols with a leading `_`.  Therefore we have only supported C ABI
plugins with the GNU compiler on AIX.  Some projects have tried to work
around this by replacing `-bexpall` with `-bexpfull`, but the latter
often exports symbols that we do not want exported.

Avoid using `-bexpall` for executables by instead using by our own
internal `ExportImportList` script to compute symbol export lists from
the object files to be linked into an executable.  Pass the explicitly
computed export list to the AIX linker's `-bE:...` option.  We already
do this for shared object exports.

Issue: #19163
2019-07-15 13:27:16 -04:00
Brad King
5f84669806 Tests: Factor out RunCMake.project helper macro into module 2019-07-15 08:17:36 -04:00
Marc Chevrier
1591f138f1 modernize: manage cmCommand instances using unique_ptr. 2019-07-14 15:37:30 +02:00
Marc Chevrier
d9b2c7dae2 Introduce memory management helper: cm_memory.hxx 2019-07-14 15:37:30 +02:00
Brad King
8212b0880d Merge topic 'cmake-e-true-false'
b8828ecbba cmake -E: Add true and false commands

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3542
2019-07-12 16:12:20 -04:00
Brad King
82a72bfc1b Merge topic 'ctest_make_program__propagated_to_cmake_configure_pass'
cd681f1f41 ctest: propagate make program to cmake

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3483
2019-07-12 16:10:32 -04:00
Kyle Edwards
b8828ecbba cmake -E: Add true and false commands 2019-07-11 13:41:30 -04:00
Brad King
e15314420c Merge topic 'iwyu-memory'
71fbebd1dc IWYU: Fix handling of <memory> standard header

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Marc Chevrier <marc.chevrier@gmail.com>
Merge-request: !3536
2019-07-11 08:52:36 -04:00
Brad King
6e4e79e1b0 Merge topic 'fix_ctest_output'
adcbdb143c CTest: Clean up stdout and logfile output for Pass/Fail regex

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3509
2019-07-11 08:50:36 -04:00
Robert Maynard
cd681f1f41 ctest: propagate make program to cmake 2019-07-11 08:28:35 -04:00
Brad King
71fbebd1dc IWYU: Fix handling of <memory> standard header
An old workaround for `std::allocator_traits<>::value_type` lints from
IWYU on `std::vector<>` usage breaks IWYU's handling of `<memory>`.
Convert the workaround to use the same approach we already use for a
workaround of `std::__decay_and_strip<>::::__type` lints.  Then update
the `<memory>` inclusions to follow the now-correct IWYU lints.
2019-07-10 11:48:56 -04:00
Brad King
4fc10431f0 Merge topic 'elseif'
f4ed56ab63 Fix elseif() in place of else()

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Alex Turbov <i.zaufi@gmail.com>
Acked-by: Rolf Eike Beer <eike@sf-mail.de>
Merge-request: !3515
2019-07-10 09:26:39 -04:00
Brad King
fe8f6e362a Merge topic 'clang-test-fixes'
417eb5739a Tests: fix some Clang failures on Windows

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3518
2019-07-10 09:25:48 -04:00
Brad King
96a35a8eed Merge topic 'implicit-includes-cray-hlist'
0a7b61269c Merge branch 'backport-implicit-includes-cray-hlist'
98e371f13e Cray: Fix include parsing when the -hlist= flag is present

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3532
2019-07-10 09:21:24 -04:00
Craig Scott
f7eb765012 Merge topic 'add_cmake_find_use_package_registry'
447a96f590 vim: Update cmake.vim to include the CMAKE_FIND_USE variables
1d00ba9ccf Find: find_package prefers variable CMAKE_FIND_USE_REGISTRY
704e3a2ca8 Find: Correct spelling and layout issues in CMAKE_FIND_USE_ docs

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3487
2019-07-09 19:32:54 -04:00
Brad King
0a7b61269c Merge branch 'backport-implicit-includes-cray-hlist' 2019-07-09 13:13:26 -04:00
Chuck Atkins
98e371f13e Cray: Fix include parsing when the -hlist= flag is present
Update parsing logic from commit 5990ecb741 (Compute implicit include
directories from compiler output, 2018-12-07, v3.14.0-rc1~108^2)
to handle the quoting behavior caused by the `-hlist=` flag.
2019-07-09 13:12:52 -04:00
Stephen Manz
adcbdb143c CTest: Clean up stdout and logfile output for Pass/Fail regex
For pass regex, display only the element that was found, rather
than all elements
Rename loop variable for fail regex, from pass to fail
For consistency, add space in output for pass
Add tests that find and don't find PASS_REGULAR_EXPRESSION, and a test
that finds FAIL_REGULAR_EXPRESSION, whose LastTest.log files are checked
using *-check.cmake.
2019-07-09 09:01:04 -07:00
Zsolt Parragi
417eb5739a Tests: fix some Clang failures on Windows
* Execute MSVCRuntimeLibrary tests for GNU command line mode Clang on
  Windows using the MSVC ABI
* Assembler tests should be executed with the Ninja generator
* Assembler tests shouldn't be executed with clang-cl
* Fixed a condition in the Preprocess test for clang-cl
* Adjusted the conditions on some MSVC specific tests
2019-07-09 11:30:25 -04:00
Brad King
f374ffb14b Merge topic 'cpack-deb-test'
7929912b37 CPackComponentsDEB test: simplify error reporting
3d11c63c9c CPackComponentsDEB test: simplify if() arguments
09cf052079 CPackComponentsDEB test: simplify package version generation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Raffi Enficiaud <raffi.enficiaud@free.fr>
Merge-request: !3514
2019-07-09 09:38:40 -04:00
Robert Maynard
1d00ba9ccf Find: find_package prefers variable CMAKE_FIND_USE_REGISTRY
CMake's find control flags should all have a consistent name.
To make this happen we are introducing `CMAKE_FIND_USE_REGISTRY`
and deprecating `CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY`.
2019-07-09 09:38:35 -04:00
Robert Maynard
704e3a2ca8 Find: Correct spelling and layout issues in CMAKE_FIND_USE_ docs 2019-07-09 09:37:55 -04:00
Brad King
80d9836a35 Merge topic 'autogen_header_extension'
f8a310c9d1 cmSystemTools: Remove cmSystemTools::FileFormat method
90b5289c55 cmExtraCodeLiteGenerator: Use cmake::Is*Extension for file type detection
e50fa44a35 cmake: Refactor file extension list setup
8214ad442f Tests: Autogen: Extend SameName test with additional header extensions
4a9154537c Autogen: Use cmake::IsHeader/SourceExtension for file type detection

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3511
2019-07-08 13:00:45 -04:00
Rolf Eike Beer
7929912b37 CPackComponentsDEB test: simplify error reporting 2019-07-05 16:25:05 +02:00
Rolf Eike Beer
3d11c63c9c CPackComponentsDEB test: simplify if() arguments 2019-07-05 16:24:58 +02:00
Rolf Eike Beer
09cf052079 CPackComponentsDEB test: simplify package version generation 2019-07-05 16:24:52 +02:00
Sebastian Holtermann
8214ad442f Tests: Autogen: Extend SameName test with additional header extensions
This adds additional headers with suffixes ".hh" and uppercase ".H" to the
QtAutogen/SameName test.
2019-07-04 12:30:40 +02:00
Rolf Eike Beer
194adaf985 Tests: require C++11 for some protobuf tests
Newer versions of Protobuf require C++11, which is reflected in the imported
target created by FindProtobuf. Manually set this for all tests that only use
the variables.
2019-07-03 18:49:49 +02:00
Artalus
f4ed56ab63 Fix elseif() in place of else() 2019-07-03 11:57:53 +03:00
Brad King
b08b640926 Merge topic 'deprecate-policy-old'
cf821ff3c4 Add deprecation warnings for policies CMP0067 and below

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3502
2019-07-02 08:44:02 -04:00
Brad King
0b83df71e7 Merge topic 'double-export-error-message'
27d6e51ae9 Tests: add tests for export set error messages
49cfd39007 cmExportBuildFileGenerator: improve error message

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3486
2019-07-02 08:42:55 -04:00
Brad King
021d147d26 Merge topic 'qt-5.13'
963ddafeaa QtDialog: Use QPalette::WindowText instead of QPalette::Foreground
1a2d6bdefc Tests: Autogen: Use valid rcc compression levels

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3500
2019-07-02 08:39:38 -04:00
Brad King
41acd44625 Merge topic 'cuda-no-device-link-when-disabled'
a4d502a5bf CUDA: Do not device link if CUDA is not an enabled language

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3491
2019-07-02 08:36:56 -04:00
Brad King
c56201bdac Merge branch 'qt-5.13' into release-3.15
Merge-request: !3500
2019-07-01 10:23:48 -04:00
Brad King
cf821ff3c4 Add deprecation warnings for policies CMP0067 and below
The OLD behaviors of all policies are deprecated, but only by
documentation.  Add an explicit deprecation diagnostic for policies
introduced in CMake 3.8 and below to encourage projects to port away
from setting policies to OLD.
2019-07-01 10:21:06 -04:00
Brad King
dd433c98e4 Merge topic 'FindMatlab-EXCLUDE_FROM_ALL'
11e0009b77 FindMatlab: EXCLUDE_FROM_ALL parameter to matlab_add_mex

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3474
2019-07-01 09:52:44 -04:00
Sebastian Holtermann
1a2d6bdefc Tests: Autogen: Use valid rcc compression levels
Avoid the invalid compression level 0 when invoking rcc.
It let's rcc fail with an error since Qt 5.13.
2019-07-01 09:18:24 -04:00
Brad King
7a3d9b08b9 Merge branch 'cuda-no-device-link-when-disabled' into release-3.15
Merge-request: !3491
2019-07-01 08:36:28 -04:00
Robert Maynard
a4d502a5bf CUDA: Do not device link if CUDA is not an enabled language
Checks added in commit 81b4d10d8f (CUDA: More exhaustive checks to
determine when to do device linking, 2019-05-09, v3.15.0-rc1~82^2)
assumed that CUDA properties would be set only if CUDA is enabled.

We cannot do a device link step if we do not have the CUDA language
enabled.  This was discovered as some projects unconditionally set CUDA
properties such as `CUDA_RESOLVE_DEVICE_SYMBOLS` even when the CUDA
language has not been enabled.

Fixes: #19432
2019-07-01 08:29:10 -04:00
Craig Scott
56f5310112 Merge topic 'bug/19436'
822abf1265 list(POP_FRONT): Fix always assigning first item to output vars

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3497
2019-07-01 07:42:04 -04:00
Alex Turbov
822abf1265 list(POP_FRONT): Fix always assigning first item to output vars
Fixes: #19436
2019-06-30 13:15:29 +03:00
Ben Boeckel
27d6e51ae9 Tests: add tests for export set error messages 2019-06-27 10:57:34 -04:00
Brad King
3327fe948e Merge topic 'vs-dpi-aware'
cd92f8f8bf VS: Add VS_DPI_AWARE target property

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3418
2019-06-27 08:56:41 -04:00
Brad King
6ddc0b4438 Merge topic 'cuda-msvc-runtime-library'
8fbd25772f CUDA: Implement MSVC runtime library abstraction
07807a2006 VS: Use AddLanguageFlags to de-duplicate CMAKE_{CUDA,ASM*}_FLAGS lookup

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3485
2019-06-27 07:30:01 -04:00
Raffi Enficiaud
11e0009b77 FindMatlab: EXCLUDE_FROM_ALL parameter to matlab_add_mex
Enabling a mex target to be excluded from the `all` target.
2019-06-26 19:53:02 +02:00