summaryrefslogtreecommitdiffstats
path: root/Source/cmcmd.cxx
Commit message (Collapse)AuthorAgeFilesLines
* MSVC: Preserve linker output encodingJustin Goshi2018-08-091-0/+10
| | | | | | | When using the Ninja or Makefile generator with MSVC on Windows we invoke the linker through a `cmake -E vs_link_{exe,dll}` wrapper. Preserve the linker output encoding to match `link.exe` behavior instead of forcing UTF-8.
* MSVC: Fix manifest resource encodingJustin Goshi2018-08-091-0/+2
| | | | | | | When using the Ninja or Makefile generator with MSVC on Windows we invoke the resource compiler (`rc.exe`) to compile a manifest resource. CMake generates the file with UTF-8 encoding so we need to add a pragma to inform the resource compiler.
* Revise C++ coding style using clang-format-6.0Kitware Robot2018-06-011-7/+8
| | | | | | | | | | | | Run the `clang-format.bash` script to update all our C and C++ code to a new style defined by `.clang-format`. Use `clang-format` version 6.0. * If you reached this commit for a line in `git blame`, re-run the blame operation starting at the parent of this commit to see older history for the content. * See the parent commit for instructions to rebase a change across this style transition commit.
* Fix combined use of compiler launcher with lint toolsIlya A. Kriveshko2018-02-271-9/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | When using ccache with clang-tidy, ccache needs to wrap compiler invocation, rather than cmake invocation. But it needs to do it without affecting the command line that iwyu-like tools are receiving. With this fix, if __run_co_compile is used, compile launcher is passed using the new --launcher option, but if __run_co_compile is not needed, compiler launcher is prepended to the command line as before. To better illustrate the change: with this fix if running clang-tidy with CXX_COMPILER_LAUNCHER set to "/usr/bin/time;-p;ccache" (time -p added strictly for illustration purposes), the command line changes from: /usr/bin/time -p ccache cmake -E __run_co_compile \ --tidy=clang-tidy ... -- g++ ... to: cmake -E __run_co_compile \ --launcher="/usr/bin/time;-p;ccache" \ --tidy=clang-tidy ... -- g++ ... This allows the compiler to be run via the launcher, but leaves tidy (& friends) invocations unaffected. Fixes: #16493
* Adds file(TOUCH) and file(TOUCH_NOCREATE) sub-commandsShane Parris2018-02-151-2/+0
|
* Reduce raw string pointers usage.Pavel Solodovnikov2018-01-311-6/+5
| | | | | | | | | | * Change some functions to take `std::string` instead of `const char*` in the following classes: `cmMakeFile`, `cmake`, `cmCoreTryCompile`, `cmSystemTools`, `cmState`, `cmLocalGenerator` and a few others. * Greatly reduce using of `const char*` overloads for `cmSystemTools::MakeDirectory` and `cmSystemTools::RelativePath`. * Remove many redundant `c_str()` conversions throughout the code.
* Make use of std::chrono throughout every componentWouter Klouwen2018-01-231-2/+2
| | | | | | | | This commit continues the changes made in CTest to support std::chrono by applying it throughout every component where a duration was used. No functional change intended.
* Help: Reword misleading docs for cmake -E timeTaylor Braun-Jones2018-01-191-1/+1
|
* cmcmd: Fix cmake_symlink_library for inconsistent slashesBrad King2017-12-201-3/+6
| | | | | | | | With the Ninja generator we may invoke `cmake_symlink_library` with different slash conventions (`/` versus `\`) for different arguments. Fix comparison of the paths/names given to tolerate this. Fixes: #17579
* 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
|