Commit Graph

38130 Commits

Author SHA1 Message Date
Sebastian Holtermann 2a85b5ac76 Autogen: Make cmQtAutoGeneratorInitializer an instantiable class
Remove the cmQtAutoGenDigest classes and make
cmQtAutoGeneratorInitializer instantiable instead.
2017-11-19 12:51:31 +01:00
Sebastian Holtermann 75819b8626 Autogen: Add and use cmQtAutoGenerator base class
Adds the new base class `cmQtAutoGenerator` which contains common
variables and methods used by `cmQtAutoGeneratorMocUic` and
`cmQtAutoGeneratorRcc`.
2017-11-19 12:51:31 +01:00
Sebastian Holtermann 27ed3b3537 Autogen: Rename cmQtAutoGenerators to cmQtAutoGeneratorMocUic 2017-11-19 12:51:30 +01:00
Sebastian Holtermann 1cd285fe06 Autogen: Remove rcc code from cmQtAutoGenerators 2017-11-19 12:51:30 +01:00
Sebastian Holtermann a87f82e025 Autogen: Switch to use custom commands for RCC
Instead of processing all `rcc` invocation requests in the
_autogen target that calls `cmake -E cmake_autogen ...` once,
use a dedicated custom command that calls
`cmake -E cmake_autorcc ...` for each `.qrc` file.
This allows parallel `.qrc` file processing and reduces the
workload (and complexity) in the _autogen target.
If only `AUTORCC` is enabled, the _autogen target won't be created
at all since it is now used for `AUTOMOC` and `AUTOUIC` only.

For `.qrc` files that are GENERATED a custom target is used
instead of a custom command.

Closes #17161
2017-11-19 12:51:30 +01:00
Sebastian Holtermann b2a0b549bb Autogen: Introduce standalone RCC generator class
Introduces the standalone RCC generator class `cmQtAutoGeneratorRcc`.

Every instance of `cmQtAutoGeneratorRcc` class handles the
`rcc` invocation for a single `.qrc` file.
The class will be used in the future to allow parallel `.qrc` file
processing by calling `cmake -E cmake_autorcc <INFO_FILE> <CONFIG>`.
2017-11-19 12:51:30 +01:00
Kitware Robot 85ae0ba796 CMake Nightly Date Stamp 2017-11-19 00:01:05 -05:00
Craig Scott 87a0b54a05 Help: Fix cross-reference in COMPILE_FLAGS target property docs 2017-11-19 12:15:04 +11:00
Kitware Robot 9c4a74559d CMake Nightly Date Stamp 2017-11-18 00:01:08 -05:00
Brad King 2b7d59f310 Genex: Enable COMPILE_LANGUAGE for file(GENERATE) with Visual Studio
Issue: #17435
2017-11-17 14:31:07 -05:00
Justin Goshi fe2c2b0ffb server: ctestInfo fix to return all tests
Prior to this change we were looking at targets. But tests are
associated with directories. This change fixes how we gather all tests.
2017-11-17 09:19:26 -08:00
Brad King 0f6f7c8ab1 Genex: Fix COMPILE_LANGUAGE messages to allow file(GENERATE) with Xcode
When rejecting the `COMPILE_LANGUAGE` generator expression on include
directories and compile definitions with Xcode, add `file(GENERATE)` to
the allowed set in the message.  It is allowed and already covered
by the `RunCMake.File_Generate` test `COMPILE_LANGUAGE-genex` case.
2017-11-17 11:56:00 -05:00
Brad King c5a82d0f88 Tests: Decouple COMPILE_LANGUAGE in file(GENERATE) from COMPILE_OPTIONS
Simplify the `RunCMake.File_Generate` test `COMPILE_LANGUAGE-genex`
case to avoid requiring support for the genex in `COMPILE_OPTIONS`.
2017-11-17 11:55:58 -05:00
Brad King 2577365040 Tests: Remove unnecessary result files from RunCMake.File_Generate
The default result is "0" anyway.
2017-11-17 11:40:14 -05:00
Brad King 08353542e5 clang-tidy: Clarify comment explaining purpose of CLANG_TIDY_SHA1
Suggested-by: Bill Hoffman <bill.hoffman@kitware.com>
2017-11-17 10:51:02 -05:00
Aaron Orenstein 4a6348dbbd Performance: Improve efficiency of source file lookup in cmMakefile
This reintroduces the change from commit v3.10.0-rc1~69^2 (Performance:
Improve efficiency of source file lookup in cmMakefile, 2017-08-17) with
some corrections.  The original was rolled back by commit
v3.10.0-rc1~52^2~1 (Revert "Performance: ...", 2017-09-25) due to
incompatibilities found.  The rollback was followed-up by addition of a
test for the offending case, and this revision passes the test.
2017-11-17 10:25:41 -05:00
Wouter Klouwen 5fd979a8a3 CTest: adopt std::chrono::system_clock
After the refactor to make CTest use std::chrono::steady_clock for the
keeping of time for test duration, there are still references to
cmSystemTools::GetTime() left.
To further adopt std::chrono for time related activities, this commit
changes those remaining references to std::chrono::system_clock::now()
calls and alters the storage from either unsigned int or double to
std::chrono::system_clock::time_point.

For ease of conversion, a converter method is added to cmXMLWriter that
converts from a std::chrono::system_clock::time_point to the number of
seconds since the UN*X epoch as that is expected behaviour. This means
no more casts as required.

Functionally should be no difference as the system_clock is implemented
in the same terms.
2017-11-17 15:22:55 +00:00
Brad King 6e07850544 Merge topic 'blas-lapack-flame'
f5bc7826 Find{BLAS,LAPACK}: Add support for FLAME blis and libflame

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1486
2017-11-17 10:18:21 -05:00
Brad King 7dfeafaaaa Merge topic 'FindRuby-through-2.4'
cd2cdfe2 FindRuby: Add support for versions 2.2, 2.3, and 2.4
23ab451a FindRuby: Fix match of '.' in version numbers

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1493
2017-11-17 10:15:25 -05:00
Brad King d261704ef5 Merge topic 'test-bad-foreach-in-function'
fb114a40 Tests: Add test for bad foreach inside a function

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1492
2017-11-17 10:14:03 -05:00
Brad King be592b23bd IWYU: Suppress warnings from the internal Clang
Do not obscure IWYU's report with warnings from its internal Clang.
We have other testing for such warnings.  Also, when compiling with
a non-Clang compiler we might use warning options that IWYU's Clang
does not understand, and we don't want to see warnings about that.
2017-11-17 10:03:41 -05:00
Brad King 00e13993fd CUDA: Add CMAKE_CUDA_SEPARABLE_COMPILATION variable
Use its value to initialize the `CUDA_SEPARABLE_COMPILATION` target
property when targets are created.

Fixes: #17478
2017-11-17 09:51:39 -05:00
Christian Pfeiffer 8e6d6337cd Merge topic 'fomp-cmp0012'
36cc4378 FindOpenMP: Enable policy CMP0012

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1490
2017-11-17 07:20:37 -05:00
Brad King 2ea17412a9 FindOpenGL: Add policy CMP0072 to prefer GLVND for legacy GL
Fixes: #17449
2017-11-17 07:17:28 -05:00
Kitware Robot 89fa46e29b CMake Nightly Date Stamp 2017-11-17 00:02:24 -05:00
Justin Goshi cb7d0a80fa server: project has install rule bug fix
Need to check all generators associated with the project because any of
them may have an install rule.
2017-11-16 09:03:08 -08:00
J M Dieterich f5bc78263e Find{BLAS,LAPACK}: Add support for FLAME blis and libflame
FLAME (github.com/flame) provides a variety of numerical libraries.
`blis` and `libflame` can be setup to expose BLAS/LAPACK interfaces.

Fixes: #17470
2017-11-16 11:43:15 -05:00
Brad King fb114a40aa Tests: Add test for bad foreach inside a function
Add test for a case fixed by commit 6a4a61d9e1 (cmForEachCommand:
prevent leakage, 2017-10-09).  Prior to that fix, this test case
could trigger an assertion failure.

Fixes: #17464
2017-11-16 11:10:05 -05:00
Brad King c1930caffe Merge branch 'release-3.10' 2017-11-16 10:53:11 -05:00
Brad King b9ef87431b Merge topic 'FindMatlab-better-host-detect'
9f1916aa FindMatlab: Avoid if() auto-dereference in 64-bit host detection

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1482
2017-11-16 10:52:23 -05:00
Brad King ee5867287a Merge topic 'fomp-no-def-path'
98314d53 FindOpenMP: Use NO_DEFAULT_PATH where appropriate

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1481
2017-11-16 10:51:20 -05:00
Brad King 5b34fb2021 Merge topic 'fmpi-command-not-found'
1615cded FindMPI: Treat 'command not found' as an error

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1483
2017-11-16 10:50:39 -05:00
Brad King 8f9301ba25 Merge topic 'msvc-version'
3bc21a70 MSVC: Fix MSVC_VERSION when mixing MSVC C/C++ with Intel Fortran

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1488
2017-11-16 10:50:01 -05:00
Brad King e24d2b58b4 Merge topic 'test-FindPatch-windows'
501b08ea Tests: Fix FindPatch test on Windows

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1480
2017-11-16 10:49:06 -05:00
Brad King 2392f6ea3e Merge topic 'FindOpenGL-glvnd-preference'
ff3c11ee FindOpenGL: Add option to prefer GLVND for legacy GL
aadc38c7 FindOpenGL: Re-order component library searches

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Clinton Stimpson <clinton@elemtech.com>
Merge-request: !1485
2017-11-16 10:48:10 -05:00
Christian Pfeiffer 36cc43788a FindOpenMP: Enable policy CMP0012
Fixes: #17476
2017-11-16 15:22:37 +01:00
Brad King cd2cdfe253 FindRuby: Add support for versions 2.2, 2.3, and 2.4
Author: J. Peter Mugaas (jpmugaas on gitlab.kitware.com)
Fixes: #17475
2017-11-16 07:05:00 -05:00
Brad King 23ab451a13 FindRuby: Fix match of '.' in version numbers
Escape `.` so that it is matched literally and not treated as a
special match of any character by the regex.
2017-11-16 07:02:26 -05:00
Kitware Robot bd863785db CMake Nightly Date Stamp 2017-11-16 00:02:31 -05:00
Brad King 3bc21a70b5 MSVC: Fix MSVC_VERSION when mixing MSVC C/C++ with Intel Fortran
When using a real MSVC compiler for `C` or `CXX`, use the version of
that compiler for `MSVC_VERSION`.  This is preferred over the MSVC
version that a non-MSVC compiler "simulates".

Fixes: #17468
2017-11-15 14:58:44 -05:00
Brad King 47c2baf06a Merge branch 'FindOpenGL-glvnd-preference' into release-3.10
Merge-request: !1485
2017-11-15 13:46:05 -05:00
Brad King ff3c11eeac FindOpenGL: Add option to prefer GLVND for legacy GL
Since commit v3.10.0-rc5~3^2 (FindOpenGL: Default to non-GLVND libraries
for legacy GL, 2017-11-08) users may set `OPENGL_gl_LIBRARY` to empty to
use GLVND components for the legacy GL interfaces.  This is useful only
when one knows in advance that the GLVND components will be found.

Add a `OpenGL_GL_PREFERENCE` variable to specify a preference for legacy
GL or GLVND.  The latter can suppress `OPENGL_gl_LIBRARY` only when the
needed GLVND components are found.  If no preference is explicitly
specified, choose a default based on whether GLVND components were
requested (because this indicates the project has been updated for
CMake 3.10).

Issue: #17437
Issue: #17449
2017-11-15 13:44:59 -05:00
Brad King aadc38c7fd FindOpenGL: Re-order component library searches
Move the search for the legacy GL library to after the GLVND libraries.
For now we still always look for both.
2017-11-15 11:46:58 -05:00
Brad King f26009dde6 VS: Order .vcxproj.filters files deterministically
Sort source groups by name rather than arbitrary pointer values.

Fixes: #17446
2017-11-15 10:52:33 -05:00
Brad King c871446abc cmSourceGroup: Return strings from GetName and GetFullName 2017-11-15 10:47:07 -05:00
Brad King 9f1916aaaa FindMatlab: Avoid if() auto-dereference in 64-bit host detection
If the value of `CMAKE_HOST_SYSTEM_PROCESSOR` also happens to be set as
a variable by a project (e.g. `AMD64`), allowing `if()` to
auto-dereference is unlikely to produce a value that matches "64".
Instead let `if()` auto-dereference `CMAKE_HOST_SYSTEM_PROCESSOR`.

Fixes: #17460
2017-11-15 09:33:56 -05:00
Christian Pfeiffer 1615cdedf5 FindMPI: Treat 'command not found' as an error
If the compiler given in I_MPI_... could not be found, the Intel MPI
wrappers emit an error like "line 590: ifort: command not found".
The script should currently fail to match the output of this for
information, but we should generally treat such an output as invalid,
since the displayed configuration line can become a mixup between Intel
and GNU compiler settings.
2017-11-15 15:27:35 +01:00
Christian Pfeiffer 98314d536e FindOpenMP: Use NO_DEFAULT_PATH where appropriate
OpenMP libraries must always be found in the implicit linking
directories of a compiler when using the OpenMP compile flag. If a suitable OpenMP library is also found in for example some CMAKE_PREFIX_PATH, this can lead to the module finding the incorrect library.
On the other hand, CMAKE_PREFIX_PATH can't ever be a location that we
need to consider since the OpenMP compile flag would not work if we
needed to.
2017-11-15 15:05:41 +01:00
Brad King e312885829 Merge topic 'ctest-chrono'
e8a4036e CTest: use std::chrono::steady_clock for time keeping

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1445
2017-11-15 08:56:23 -05:00
Brad King 47f8998d92 Merge topic 'update-prebuilt-openssl'
b40d45cd Utilities/Release: Update to openssl-1.1.0g
78aeb300 Utilities/Release: Update to openssl-1.0.2m

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1478
2017-11-15 08:37:04 -05:00