Commit Graph

23777 Commits

Author SHA1 Message Date
Yurii Batrak 5f2e2c387d Makefiles: Avoid nested make calls for Fortran module dependencies
Makefiles generated by cmake use a series of nested calls to build
`*.provides.build` targets that are used when the 'requires' step is
needed.  That leads to significant degradation of the build time for
incremental builds.  Re-arrange dependencies to eliminate the nested
calls.

Explicit `.mod.stamp` targets introduced by this commit could lead to
situation when a stamp file always older than its dependency.  This
happens during the incremental build when building of an updated Fortran
source produces a module file that has no differences from the stored
stamp file.  In such case `cmake_copy_f90_mod` will be triggered on each
new build to compare a module file with the corresponding stamp file.
This behavior is expected and can not be changed without nested calls
that slow down the build.  The copy-if-different check is much cheaper
than an entire nested make call.
2017-12-14 08:13:42 -05:00
Kitware Robot eea976e930 CMake Nightly Date Stamp 2017-11-24 00:01:22 -05:00
Kitware Robot e1243a50a7 CMake Nightly Date Stamp 2017-11-23 00:01:05 -05:00
Kitware Robot 7dbeb3ac5c CMake Nightly Date Stamp 2017-11-22 00:02:20 -05:00
Kitware Robot 9698eef88a CMake Nightly Date Stamp 2017-11-21 00:01:05 -05:00
Brad King d5624a40f2 Merge topic 'fix-cmake-server-bad-buffering'
01c42155 server: Fix regression in partial message handling

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: jdavidberger <j.david.berger@gmail.com>
Merge-request: !1498
2017-11-20 10:23:48 -05:00
Brad King 08ce62bee5 Merge topic 'autogen-rcc-custom-command'
40434631 Autogen: Use integers instead of strings for the Qt version
be11a852 Autogen: Use project relative paths in rcc custom command comment
ab9d5896 Autogen: Detect rcc feature once during configuration
2a85b5ac Autogen: Make cmQtAutoGeneratorInitializer an instantiable class
75819b86 Autogen: Add and use cmQtAutoGenerator base class
27ed3b35 Autogen: Rename cmQtAutoGenerators to cmQtAutoGeneratorMocUic
1cd285fe Autogen: Remove rcc code from cmQtAutoGenerators
a87f82e0 Autogen: Switch to use custom commands for RCC
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1494
2017-11-20 10:13:11 -05:00
Brad King 345ae8d0e1 Merge topic 'ctest-chrono'
5fd979a8 CTest: adopt std::chrono::system_clock

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1487
2017-11-20 09:50:02 -05:00
Brad King 1da5a6ea39 Merge topic 'cuda-sep-comp-var'
00e13993 CUDA: Add CMAKE_CUDA_SEPARABLE_COMPILATION variable

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Alexander Korsunsky <a.korsunsky@gmail.com>
Merge-request: !1495
2017-11-20 09:45:58 -05:00
Brad King dc24013bfc Merge topic 'perf-source-lookup'
4a6348db Performance: Improve efficiency of source file lookup in cmMakefile

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1421
2017-11-20 09:44:19 -05:00
Brad King 9100ea1d82 Merge topic 'FindOpenGL-glvnd-policy'
2ea17412 FindOpenGL: Add policy CMP0072 to prefer GLVND for legacy GL

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Clinton Stimpson <clinton@elemtech.com>
Merge-request: !1491
2017-11-20 09:43:27 -05:00
Brad King b0c2cd47f0 Merge topic 'serverBugFixHasInstallRule'
cb7d0a80 server: project has install rule bug fix

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1489
2017-11-20 09:42:06 -05:00
Brad King 521cb89e02 Merge topic 'vs-source-group-order'
f26009dd VS: Order .vcxproj.filters files deterministically
c871446a cmSourceGroup: Return strings from GetName and GetFullName

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1484
2017-11-20 09:41:09 -05:00
vector-of-bool 01c42155cc server: Fix regression in partial message handling
If a partial message is flushed into the input pipe for CMake Server,
the parser will try and parse it as a full message because of some bad
loop checks.  This was introduced accidentally in commit
v3.10.0-rc1~365^2~2 (server: Refactor to make the event loop owned by
server object, 2017-03-24).
2017-11-20 09:25:20 -05:00
Kitware Robot 566f77b7f9 CMake Nightly Date Stamp 2017-11-20 00:01:04 -05:00
Sebastian Holtermann 4043463179 Autogen: Use integers instead of strings for the Qt version 2017-11-19 13:35:07 +01:00
Sebastian Holtermann be11a85286 Autogen: Use project relative paths in rcc custom command comment 2017-11-19 13:35:07 +01:00
Sebastian Holtermann ab9d5896ae Autogen: Detect rcc feature once during configuration
We used to detect the `rcc` features before every `rcc` list invocation
wich resulted in `rcc` be called twice for every listing operation.

Now we detect the `rcc` list capabilities once during configuration and
pass it to the cmake_autorcc target in the info file.
2017-11-19 13:12:42 +01:00
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
Kitware Robot 9c4a74559d CMake Nightly Date Stamp 2017-11-18 00:01:08 -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 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
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
Kitware Robot bd863785db CMake Nightly Date Stamp 2017-11-16 00:02:31 -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 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
Kitware Robot 5c44821331 CMake Nightly Date Stamp 2017-11-15 00:04:33 -05:00
Wouter Klouwen e8a4036e96 CTest: use std::chrono::steady_clock for time keeping
It was reported in issue #17345 that CTest does not use monotonic time
to report test duration. Monotonic clocks are not affected by large NTP
adjustments or things like daylight savings time.

As CMake 3.10 requires C++11, which introduced std::chrono, this commit
moves the time keeping in CTest from cmSystemTools::GetTime() to
std::chrono::steady_clock.

Fixes: #17345
2017-11-14 13:30:14 +00:00
Brad King 6c23107725 Merge topic 'cmake-gui-qt-static-windows'
3a993c49 Tests: Add options to disable tests requiring Qt
27a73f16 cmake-gui: Add build option to use Qt5 windows plugin statically

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1476
2017-11-14 07:23:40 -05:00
Brad King 8203895caa Merge topic 'xcode64'
23dd8b9e cmGlobalXCodeGenerator: Support XCTest for XCode 6.4

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1471
2017-11-14 07:22:42 -05:00
Kitware Robot 7a06f9973a CMake Nightly Date Stamp 2017-11-14 00:02:18 -05:00
Brad King b77501d4c7 Merge topic 'ctest-warning'
ec2f9012 CTest: correct misleading warning message for RUN_SERIAL tests

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Zack Galbreath <zack.galbreath@kitware.com>
Merge-request: !1469
2017-11-13 09:56:46 -05:00
Brad King 27a73f1613 cmake-gui: Add build option to use Qt5 windows plugin statically
This will enable builds against a static Qt5 on Windows.
2017-11-13 09:54:49 -05:00
Brad King b62eb8f697 Merge topic 'xcodeForLoopCleanup'
98cbcedd Xcode: use ranged for loops, cleanup existing for loops

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1456
2017-11-13 09:52:43 -05:00
Kitware Robot 67c981fdc2 CMake Nightly Date Stamp 2017-11-13 00:01:06 -05:00
Kitware Robot b1a06e4726 CMake Nightly Date Stamp 2017-11-12 00:01:04 -05:00
Kitware Robot 5d3b917d38 CMake Nightly Date Stamp 2017-11-11 00:03:54 -05:00
Brad King 78f5d571e4 CMake 3.10.0-rc5 2017-11-10 10:46:29 -05:00
Brad King 2201ecec44 Windows: Do not report manifest tool update notification as failure
A diagnostic message added in commit v3.10.0-rc1~59^2 (Windows: Improve
link-time error messages when rc or mt fail, 2017-09-22) incorrectly
reports the `mt /notify_update` special return code as a failure.
Fix the logic to consider the special return codes as success.

Fixes: #17444
2017-11-10 10:41:50 -05:00
Brad King 11e2f53e30 Merge topic 'windows-mt-update-quiet'
5c07d390 cmcmd: Fix typo in RunCommand logic

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1473
2017-11-10 10:41:15 -05:00