summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Merge topic 'update-kwsys'Brad King2017-09-211-0/+6
|\ | | | | | | | | | | | | | | ff0ddff7 Merge branch 'upstream-KWSys' into update-kwsys d49b95b8 KWSys 2017-09-21 (ff912e4d) Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1297
| * Merge branch 'upstream-KWSys' into update-kwsysBrad King2017-09-211-0/+6
| |\ | | | | | | | | | | | | * upstream-KWSys: KWSys 2017-09-21 (ff912e4d)
| | * KWSys 2017-09-21 (ff912e4d)KWSys Upstream2017-09-211-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Code extracted from: https://gitlab.kitware.com/utils/kwsys.git at commit ff912e4d39e0a580b9d9be5430fffa46c0e1f94d (master). Upstream Shortlog ----------------- Brad King (1): aa9f3a82 macOS: Account for deployment target when checking for utimensat
* | | Merge topic 'midipix-support'Brad King2017-09-212-0/+5
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | 0df43496 Midipix: Add minimal platform file Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1294
| * | | Midipix: Add minimal platform filemidipix2017-09-202-0/+5
| | | | | | | | | | | | | | | | Add Midipix.cmake (UnixPaths, no overrides, no special cases).
* | | | Merge topic 'freebsd-compiler-name'Brad King2017-09-212-0/+7
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3cf3bb71 Help: Add notes for topic 'freebsd-compiler-name' a0508dee FreeBSD prefers to call the C++ compiler c++ (just like Linux, Darwin, ..) Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1293
| * | | | Help: Add notes for topic 'freebsd-compiler-name'Brad King2017-09-211-0/+4
| | | | |
| * | | | FreeBSD prefers to call the C++ compiler c++ (just like Linux, Darwin, ..)Adriaan de Groot2017-09-201-0/+3
| |/ / /
* | | | Merge topic 'cpack-different-checksum-file-per-generator'Brad King2017-09-212-5/+3
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | b06870e5 CPack: use a distinct checksum file for each generator Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1291
| * | | | CPack: use a distinct checksum file for each generatorDomen Vrankar2017-09-202-5/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Different CPack generators could produce checksum files with the same name which were overwritten by each other since only package name without extensions was used for checksum file name generation. This patch adds package extension to checksum files to prevent collisions. Fixes: #16840
* | | | | Merge topic 'cpack-check-install-script'Brad King2017-09-214-1/+17
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 09166339 CPack: Add missing check for CPACK_INSTALL_SCRIPT variable Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1090
| * | | | | CPack: Add missing check for CPACK_INSTALL_SCRIPT variableAlex Turbov2017-09-204-1/+17
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also add a test case that uses CPACK_INSTALL_SCRIPT. Co-Author: Domen Vrankar <domen.vrankar@gmail.com> Fixes: #15005
* | | | | Merge topic 'libarchive-macos-nanosecond'Brad King2017-09-211-0/+11
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 96329d5d libarchive: Do not use nanosecond file time APIs on macOS < 10.13 Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1295
| * | | | | libarchive: Do not use nanosecond file time APIs on macOS < 10.13Brad King2017-09-201-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The SDK for macOS 10.13 adds `futimens` and `utimensat` so our checks for these symbols may pass. However, the symbols are not available at runtime on older macOS versions. Instead on macOS we can check for availability based on the deployment target version. Issue: #17101
* | | | | | Merge topic 'test_for_missing_sources'Brad King2017-09-2159-0/+209
|\ \ \ \ \ \ | |_|_|_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 55ed21e7 Tests: Add tests for missing sources in add_executable and add_library. Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1269
| * | | | | Tests: Add tests for missing sources in add_executable and add_library.Deniz Bahadir2017-09-2059-0/+209
| | | | | |
* | | | | | CMake Nightly Date StampKitware Robot2017-09-211-1/+1
| | | | | |
* | | | | | Merge topic 'CTest-cov-string'Brad King2017-09-202-11/+10
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 062776e7 CTest: pass std::string to cmCTestCoverageHandler::ShouldIDoCoverage() Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1290
| * | | | | | CTest: pass std::string to cmCTestCoverageHandler::ShouldIDoCoverage()Rolf Eike Beer2017-09-192-11/+10
| | |_|/ / / | |/| | | | | | | | | | | | | | | | Avoid needless conversion back and forth.
* | | | | | Merge topic 'pgi-fortran-flag-fix'Brad King2017-09-202-5/+8
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 485a6f0e PGI-Fortran: Add -Mipa=fast,inline as IPO option. 97f0b177 PGI-Fortran: Remove -Kieee and -Mpreprocess Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1239
| * | | | | | PGI-Fortran: Add -Mipa=fast,inline as IPO option.Tin Huynh2017-09-151-4/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove -Mipa=fast as a default flag and add it as an option instead. -Mipa=fast is a flag that speeds up runtime but at the cost of significant compile time increase and therefore, shouldn't be a default flag. In addition, -Mipa isn't supported on PGI OpenPOWER or x86/llvm compilers.
| * | | | | | PGI-Fortran: Remove -Kieee and -MpreprocessTin Huynh2017-09-061-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes #17209
* | | | | | | Merge topic 'ninja-performance'Brad King2017-09-203-32/+59
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7374cb85 Ninja: Cache ConvertToNinjaPath results to avoid repeat work ed19e813 Ninja: Improve performance with deeply-dependent custom targets Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1217
| * | | | | | | Ninja: Cache ConvertToNinjaPath results to avoid repeat workMatthias Maennich2017-09-192-5/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Calls to this method may dominate generation time in some cases. Measurements for configuring cmake itself show a cache hit rate of ~57% (7753 total calls, 4453 cache hits). For a larger project (that also makes use of custom targets as prerequisite for all compile targets), the measured cache hit ratio is ~96% (2530827 total calls, 2433124 cache hits). For this project the observable cmake runtime could be reduced from 40s to 30s. Signed-off-by: Matthias Maennich <matthias@maennich.net>
| * | | | | | | Ninja: Improve performance with deeply-dependent custom targetsMatthias Maennich2017-09-193-27/+44
| | |/ / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The commit v3.7.0-rc1~339^2 (Ninja: Fix inter-target order-only dependencies of custom command, 2016-07-20) might cause performance degradations for larger projects. Especially when using custom commands as an input for each compilation rule (e.g. generated headers). For reference in the following I am referring to Source/cmGlobalNinjaGenerator.cxx: -> cmGlobalNinjaGenerator::AppendTargetDependsClosure -> cmGlobalNinjaGenerator::ComputeTargetDependsClosure It turned out that the mentioned commit is doing (indirectly) some redundant work that might impact performance when generating large projects. Imagine the dependency tree of custom targets: A \ C - D - E / B For each target the transitive closure is calculated recursively, but as the TargetDependsClosures are only cached on the top most level, everything downstream has to be recalculated. I.e. A->C->D->E B->C->D->E This ultimately leads to a lot of redundant calls to AppendTargetOutputs. The recursive nature of the algorithm itself is not significant to the problem, but reducing the work to actually to be done work, eliminates the performance problem. This patch changes the way, intermediate results are cached. Rather than caching the closure of targets, we cache the closure of outputs. Such that in the example above at B->C the cache already would kick in. Caching the outputs has one disadvantage that the patch takes care of. In case of such a structure A E \ / \ C - D G / \ / B F the calling order for A would be A->C->D->E->G (at which time G is seen to the recursion) then the recursion returns until it reaches A->C->D->F (at which the seen G would prevent to recurse down to G) But this would poison the cache for F with a wrong value (without G). Hence we use a local result set to ensure the cache is still consistently populated. For a large C++ project with around 25k targets this reduced the CMake configure / generate time from ~40s to ~29s. Signed-off-by: Matthias Maennich <matthias@maennich.net>
* | | | | | | Merge topic 'tidy-modernize-loop-convert'Brad King2017-09-206-21/+10
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 706b37b7 Enable clang-tidy modernize-loop-convert lint Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1287
| * | | | | | | Enable clang-tidy modernize-loop-convert lintBrad King2017-09-196-21/+10
| |/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix remaining diagnostics by this lint and remove it from our list of disabled lints.
* | | | | | | Merge topic 'cxx11-nullptr'Brad King2017-09-2014-67/+68
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | a5279ae5 Use C++11 nullptr (cont.) Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1283
| * | | | | | | Use C++11 nullptr (cont.)Matthias Maennich2017-09-1914-67/+68
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix remaining occurrences of the issue addressed in commit 5962db4389 (Use C++11 nullptr, 2017-08-22) that are only showing up on macOS. Signed-off-by: Matthias Maennich <matthias@maennich.net>
* | | | | | | | Merge topic 'fix-compiler-failure-formatting'Brad King2017-09-206-12/+18
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | f23def2c Improve formatting of compiler failure error message Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1285
| * | | | | | | | Improve formatting of compiler failure error messageBrad King2017-09-196-12/+18
| | |/ / / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When we report that a compiler was unable to build a simple test program, indent the output of the attempt so that our message formatting will show it as a pre-formatted block.
* | | | | | | | Merge topic 'cxx-checks-tolerate-unused-flag'Brad King2017-09-201-1/+4
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 71b65abc C++ feature checks: Filter out warnings caused by user flags eb3abf8b C++ feature checks: Prepare for multiple check output filters Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1286
| * | | | | | | | C++ feature checks: Filter out warnings caused by user flagsBrad King2017-09-191-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Filter out `-Winvalid-command-line-argument` warnings from Clang (that can be caused by user-specified flags) so that they do not break our checks for C++ feature availability.
| * | | | | | | | C++ feature checks: Prepare for multiple check output filtersBrad King2017-09-191-1/+2
| |/ / / / / / /
* | | | | | | | Merge branch 'release-3.9'Brad King2017-09-200-0/+0
|\ \ \ \ \ \ \ \ | |_|_|_|_|/ / / |/| | | | | | |
| * | | | | | | CMake 3.9.3v3.9.3Brad King2017-09-201-1/+1
| | | | | | | |
* | | | | | | | Merge branch 'release-3.9'Brad King2017-09-200-0/+0
|\ \ \ \ \ \ \ \ | |/ / / / / / /
| * | | | | | | Merge branch 'CTest-crash-missing-glob' into release-3.9Brad King2017-09-191-0/+2
| |\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | Merge-request: !1289
* | \ \ \ \ \ \ \ Merge topic 'CTest-crash-missing-glob'Brad King2017-09-201-0/+2
|\ \ \ \ \ \ \ \ \ | | |/ / / / / / / | |/| | | | | / / | |_|_|_|_|_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | 6db63012 CTest: fix crash if source file for coverage cannot be found Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1289
| * | | | | | | CTest: fix crash if source file for coverage cannot be foundRolf Eike Beer2017-09-191-0/+2
| |/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The opened XML elements were not closed, so an assert was triggered when the file was finally closed. If CMake is built with assertions disabled then an invalid XML file will be produced.
* | | | | | | CMake Nightly Date StampKitware Robot2017-09-201-1/+1
| |/ / / / / |/| | | | |
* | | | | | Merge topic 'ranged-for'Brad King2017-09-1918-389/+246
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | f43baf69 Meta: modernize old-fashioned loops to range-based `for` (CPack). Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1274
| * | | | | | Meta: modernize old-fashioned loops to range-based `for` (CPack).Pavel Solodovnikov2017-09-1918-389/+246
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Changes done via `clang-tidy` with some manual fine-tuning for the variable naming and `auto` type deduction where appropriate.
* | | | | | | Merge topic 'string-clear'Brad King2017-09-1970-212/+212
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 5db3aac1 Meta: replace empty-string assignments with `clear()`. Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1276
| * | | | | | | Meta: replace empty-string assignments with `clear()`.Pavel Solodovnikov2017-09-1570-214/+214
| |/ / / / / /
* | | | | | | Merge topic 'vs-manifestuac-flag-map'Brad King2017-09-198-25/+111
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3232f84c VS: Fix MANIFESTUAC link flag map to .vcxproj elements Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !526
| * | | | | | | VS: Fix MANIFESTUAC link flag map to .vcxproj elementscomicfans2017-09-188-25/+111
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add special parsing of the flags given in `/MANIFESTUAC:"..."` in order to map them correctly to `.vcxproj` elements. Keep the old incorrect flag table entries for `uiAccess` and `level` flags for compatibility even though they do not really exist. Fixes: #16563
* | | | | | | | Merge topic 'gtest-fix-windows-linking'Brad King2017-09-192-58/+85
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | e2cca9f8 FindGTest: Avoid macro name collision 4636c64b FindGTest: Improve test to catch link error 35061791 FindGTest: Fix shared linking on Windows 9fd9e448 FindGTest: Avoid using find_dependency in a find module Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1267
| * | | | | | | | FindGTest: Avoid macro name collisionMatthew Woehlke2017-09-181-26/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use two _'s for private function/macro names rather than one. This avoids a potential collision if a function/macro with no leading _ that otherwise matches the name of a private function/macro also overrides a built-in function or is defined twice.
| * | | | | | | | FindGTest: Improve test to catch link errorMatthew Woehlke2017-09-181-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a reference to one of Google Test's command-line flags to the FindGTest test. This will ensure that we are using the correct compile definitions on Windows, as the test will otherwise fail to link. (IOW, this tests the changes made by the previous commit.)