summaryrefslogtreecommitdiffstats
path: root/Source/cmcmd.cxx
Commit message (Collapse)AuthorAgeFilesLines
* Update cpplint support to return 0 and mark warnings for CDash.Bill Hoffman2017-12-011-2/+4
| | | | | | | | This commit makes cpplint act like the other compiler mirroring tools. It will always return 0 even if it reports warnings and will only return non zero if there is a problem running the command. In addition, it will now add some extra text to allow CTest to recognize the warnings and report them correctly to CDash.
* Autogen: Rename cmQtAutoGenerators to cmQtAutoGeneratorMocUicSebastian Holtermann2017-11-191-2/+2
|
* Autogen: Introduce standalone RCC generator classSebastian Holtermann2017-11-191-4/+14
| | | | | | | | | 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>`.
* Merge topic 'windows-mt-update-quiet'Brad King2017-11-101-1/+1
|\ | | | | | | | | | | | | 5c07d390 cmcmd: Fix typo in RunCommand logic Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1473
| * cmcmd: Fix typo in RunCommand logicBrad King2017-11-101-1/+1
| | | | | | | | | | | | | | Fix logic added by commit 18eae3f04d (Windows: Do not report manifest tool update notification as failure, 2017-11-09). Issue: #17444
* | Merge topic 'windows-mt-update-quiet'Brad King2017-11-101-14/+23
|\ \ | |/ | | | | | | | | | | 18eae3f0 Windows: Do not report manifest tool update notification as failure Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1470
| * Windows: Do not report manifest tool update notification as failureBrad King2017-11-091-14/+23
| | | | | | | | | | | | | | | | | | 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
* | Merge branch 'backport-fix-co-compile' into fix-co-compileBrad King2017-10-271-64/+75
|\ \ | |/ | | | | | | Resolve a logical conflict by replacing `cmArray{Begin,End}` from the their side with `cm::{cbegin,cend}` from our side.
| * cmcmd: Restore support for running multiple lint toolsBrad King2017-10-271-56/+66
| | | | | | | | | | | | | | Refactoring in commit v3.10.0-rc1~115^2 (Clean up iwyu code to not be one big if statement, 2017-08-28) incorrectly changed the logic to run only one lint tool at a time. Restore support for running all tools specified on the command-line.
| * cmcmd: Convert lint handlers to file-static functionsBrad King2017-10-271-11/+12
| | | | | | | | These do not need to be declared in the header.
| * cmcmd: Rename loop iteration variable for clarityBrad King2017-10-271-2/+2
| |
* | Replace cmArray{Begin,End,Size} by their standard counterpartsMatthias Maennich2017-10-231-2/+3
|/ | | | | | | | | | | std::{begin,end} are part of C++11, std::{cbegin,cend} are part of C++14 and an standard compliant implementation has been introduced within the 'cm' namespace: cm::{cbegin,cend}. std::size is only part of C++17, hence exposing a compliant implementation within namespace cm (cm::size). where possible, the standard implementations are reused.
* cmcmd: let operator<< for NumberFormatter reset the stream's format flagsMatthias Maennich2017-10-051-1/+3
|
* Improve several occurrences of vector::push_back in loopsMatthias Maennich2017-09-281-0/+1
| | | | | | | Fix issues diagnosed by clang-tidy by pre-allocating the vector capacity before the loop [performance-inefficient-vector-operation]. Signed-off-by: Matthias Maennich <matthias@maennich.net>
* Retire std::auto_ptr and its macro CM_AUTO_PTRMatthias Maennich2017-09-251-3/+3
| | | | Signed-off-by: Matthias Maennich <matthias@maennich.net>
* Windows: Improve link-time error messages when rc or mt failJonathan Marler2017-09-221-32/+62
| | | | | | We run extra tools during linking on Windows to deal with manifests. Report more information when these tools fail. For example, if the Windows SDK is not installed with VS then `rc.exe` will be missing.
* Enable clang-tidy modernize-loop-convert lintBrad King2017-09-191-5/+2
| | | | | Fix remaining diagnostics by this lint and remove it from our list of disabled lints.
* Merge topic 'refactor-iwyu-code'Brad King2017-09-151-228/+279
|\ | | | | | | | | | | | | 3bbe95f5 Clean up iwyu code to not be one big if statement. Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1247
| * Clean up iwyu code to not be one big if statement.Bill Hoffman2017-09-131-228/+279
| | | | | | | | | | | | | | | | | | | | This commit changes the internal -E__run_iwyu to be -E__run_co_compile. This is used for co-compile commands. These are tools that want to mirror the compiler. For each compiler invocation the tool will be invoked first. This started as a way to implement include what you use (iwyu), but has expanded to include cpplint, cppcheck and others. Likely there will be more in the future as well. This commit implements each one in its own function and provides a way to add additional ones in the future with less work.
* | Meta: modernize old-fashioned loops to range-based `for`.Pavel Solodovnikov2017-09-121-6/+5
|/ | | | | | Changes done via `clang-tidy` with some manual fine-tuning for the variable naming and `auto` type deduction where appropriate.
* Add properties to run cppcheck along with the compilerBill Hoffman2017-08-301-7/+60
| | | | | | Create a `<LANG>_CPPCHECK` target property (initialized by a `CMAKE_<LANG>_CPPCHECK` variable) to specify a `cppcheck` command line to be run along with the compiler.
* Merge topic 'server-cxx11'Daniel Pfeifer2017-08-271-7/+4
|\ | | | | | | | | | | | | | | | | 27d87fbd CTestCustom: Suppress exception loosening warning 7f29bbe6 server: always enable server 4614a3b2 server: backport to C++11 Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1149
| * server: always enable serverDaniel Pfeifer2017-08-261-7/+4
| |
* | IWYU: Mark cmConfigure.h with pragma: keepDaniel Pfeifer2017-08-261-1/+0
|/ | | | Also remove `#include "cmConfigure.h"` from most source files.
* Use C++11 nullptrDaniel Pfeifer2017-08-241-17/+16
|
* Merge topic 'server-refactor'Brad King2017-07-181-1/+3
|\ | | | | | | | | | | | | | | | | | | cf0ae55d server: Add support for connections that aren't event based 5ddfb6a4 server: Add connection as part of a request d4f5d35c server: Refactor to make the event loop owned by server object 5acbf08b Tests: Teach Server test to forward exit code from server process Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !552
| * server: Refactor to make the event loop owned by server objectJustin Berger2017-07-111-1/+3
| |
* | Add sha1sum, sha224sum, sha256sum, sha384sum and sha512sum to command modeAndré Klitzing2017-07-141-22/+54
| |
* | Change ComputeFileMD5 to ComputeFileHashAndré Klitzing2017-07-141-7/+11
|/ | | | | | | * Use a parameter to select hash algorithm * Return a std::string as result or an empty string if it fails * Avoids unnecessary copy of hash value
* Access string npos without instancePavel Solodovnikov2017-06-011-13/+13
|
* Add const-reference qualificationsPavel Solodovnikov2017-05-261-8/+8
|
* cmake: initialize with Role that controls which commands to registerDaniel Pfeifer2017-05-081-2/+2
|
* clang-tidy: remove else after break and continueDaniel Pfeifer2017-04-211-1/+2
|
* Use quotes for non-system includesDaniel Pfeifer2017-04-111-5/+5
| | | | | | | | | | | | | Automate with: git grep -l '#include <cm_' -- Source \ | xargs sed -i 's/#include <\(cm_.*\)>/#include "\1"/g' git grep -l '#include <cmsys/' -- Source \ | xargs sed -i 's/#include <\(cmsys\/.*\)>/#include "\1"/g' git grep -l '#include <cm[A-Z]' -- Source \ | xargs sed -i 's/#include <\(cm[A-Z].*\)>/#include "\1"/g'
* bindexplib: Add support for parsing and integrating `.def` filesBrad King2017-03-211-4/+11
|
* Add properties to run the cpplint style checker with the compilerJamie Snape2017-01-231-5/+37
| | | | | | Create a `<LANG>_CPPLINT` target property (initialized by a `CMAKE_<LANG>_CPPLINT` variable) to specify a `cpplint` style checker command line to be run along with the compiler.
* clang-tidy: apply modernize-use-bool-literals fixesDaniel Pfeifer2016-12-121-8/+8
|
* cmake: Report if the <LANG>_CLANG_TIDY tool exits with non-zeroBrad King2016-11-181-3/+10
| | | | | | | | When using `<LANG>_CLANG_TIDY` our internal launcher for the tool must capture its return code and stderr and report them on failure. Otherwise incorrect command lines silently fail. Closes: #16435
* cmake: If ldd for LINK_WHAT_YOU_USE fails to run then report whyBrad King2016-11-181-3/+7
|
* cmake: Comment why we ignore the include-what-you-use return codeBrad King2016-11-181-0/+1
| | | | | | | | The include-what-you-use tool always returns non-zero to indicate that it did not actually produce an object file as Clang would from the same command line. Add a comment explaining that this is why we ignore its return code. Also update our `pseudo_iwyu` test suite tool to always exit with an error too.
* Fix several include-what-you-use findingsDaniel Pfeifer2016-11-081-0/+1
|
* Merge topic 'clang-tidy'Brad King2016-10-201-38/+54
|\ | | | | | | | | | | effa6c83 fix more issues reported by clang-tidy fb461cac silence selected clang-tidy violations
| * fix more issues reported by clang-tidyDaniel Pfeifer2016-10-201-38/+54
| |
* | cmState: Split auxiliary classes into separate filesStephen Kelly2016-10-191-1/+1
| | | | | | | | | | | | | | Port dependents to the new locations as needed. Leave behind a cmState.h include in cmListFileCache to reduce noise. It is removed in a following commit.
* | cmState: Port dependent code to new cmStateSnapshot nameStephen Kelly2016-10-191-1/+1
|/
* Simplify CMake per-source license noticesBrad King2016-09-271-11/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | Per-source copyright/license notice headers that spell out copyright holder names and years are hard to maintain and often out-of-date or plain wrong. Precise contributor information is already maintained automatically by the version control tool. Ultimately it is the receiver of a file who is responsible for determining its licensing status, and per-source notices are merely a convenience. Therefore it is simpler and more accurate for each source to have a generic notice of the license name and references to more detailed information on copyright holders and full license terms. Our `Copyright.txt` file now contains a list of Contributors whose names appeared source-level copyright notices. It also references version control history for more precise information. Therefore we no longer need to spell out the list of Contributors in each source file notice. Replace CMake per-source copyright/license notice headers with a short description of the license and links to `Copyright.txt` and online information available from "https://cmake.org/licensing". The online URL also handles cases of modules being copied out of our source into other projects, so we can drop our notices about replacing links with full license text. Run the `Utilities/Scripts/filter-notices.bash` script to perform the majority of the replacements mechanically. Manually fix up shebang lines and trailing newlines in a few files. Manually update the notices in a few files that the script does not handle.
* Ninja: Add internal tool to produce a ninja dyndep file for FortranBrad King2016-09-221-0/+7
| | | | | | | Create an internal `cmake -E cmake_ninja_dyndep` tool to read the "ddi" files generated by `cmake -E cmake_ninja_depends` from all sources in a target and generate a ninja dyndep file that tells Ninja about Fortran module dependencies within the target and on target dependencies.
* Ninja: Add internal tool to scan Fortran code for module dependenciesBrad King2016-09-221-0/+10
| | | | | | | | Create an internal `cmake -E cmake_ninja_depends` tool to scan an already-preprocessed Fortran translation unit for modules that it provides or requires. Save the information in a "ddi" file with a CMake-private format for intermediate dynamic dependency information. This file may the be loaded by another tool to be added later.
* server-mode: Introduce cmServerConnectionTobias Hunger2016-09-221-12/+30
| | | | | | | | Use it to split pipe and stdin/out handling out of cmServer itself. The server will shut down when it looses its connection to the client. This has the nice property that a crashing client will cause the server to terminate as the OS will close the connection on behave of the client.
* server-mode: Add --experimental flagTobias Hunger2016-09-201-4/+21
| | | | | | | | Allow for experimental cmProtocolVersions, which will only ever get listed if the server was started with the (undocumented) "--experimental" flag. Mark current protocol version 1.0 as experimental.