summaryrefslogtreecommitdiffstats
path: root/Source/cmcmd.cxx
Commit message (Collapse)AuthorAgeFilesLines
* cmake: Teach -E make_directory to support multiple input directoriesBartosz Kosiorek2015-12-101-7/+12
|
* cmake: Teach -E copy_directory to support multiple input directoriesBartosz Kosiorek2015-12-071-9/+15
|
* cmake: Refine -E copy_if_different implementation indentationBartosz Kosiorek2015-12-071-2/+2
|
* cmake: Refine -E chdir documentationBartosz Kosiorek2015-12-071-1/+1
|
* cmake: Teach -E copy[_if_different] to support multiple files (#15703)Bartosz Kosiorek2015-12-041-15/+46
| | | | | | If multiple input files are provided then the destination must be a directory. If only one input file is provided then destination may be either a file or directory.
* cmake: Improve '-E' help message formattingBartosz Kosiorek2015-12-041-6/+6
|
* Merge topic 'fix-ms-manifest-no-linker'Brad King2015-11-191-1/+3
|\ | | | | | | | | ca263d1d MSVC: Fix linking with /MANIFEST:NO option
| * MSVC: Fix linking with /MANIFEST:NO optionBrad King2015-11-181-1/+3
| | | | | | | | | | | | Refactoring in commit v3.4.0-rc1~74^2~1 (MSVC: Rewrite manifest file handling with Makefile and Ninja, 2015-09-15) broke handling of this option. Fix it and add a test case.
* | De-duplicate symbols listed in generated module definition filesBill Hoffman2015-11-181-3/+5
| | | | | | | | | | | | | | MS tools have a limit on the number of symbols that can be listed in a `.def` file. If multiple `.obj` files provide a symbol then avoid listing it more than once in the generated `.def` file to avoid counting toward the limit.
* | cmState: Initialize default definitions immediately.Stephen Kelly2015-10-131-0/+1
| | | | | | | | Don't leave this as cmMakefile responsibility.
* | Set the current dirs on the snapshot before creating the cmMakefile.Stephen Kelly2015-10-071-2/+4
|/ | | | | | The cmMakefile should get a fully prepared snapshot and not clobber its definitions. It should eventually be able to process list files from any starting-point snapshot, though that is some refactoring away still.
* Add support for *.manifest source files with MSVC toolsBrad King2015-09-171-5/+16
| | | | | | | | Classify .manifest sources separately, add dependencies on them, and pass them to the MS manifest tool to merge with linker-generated manifest files. Inspired-by: Gilles Khouzam <gillesk@microsoft.com>
* MSVC: Rewrite manifest file handling with Makefile and NinjaBrad King2015-09-171-184/+221
| | | | | | | | | Add a helper class private to "cmcmd.cxx" to contain the implementation. Update the link logic to use the intermediate files directory for each target to hold manifest and resource files before embedding into the binary. Preserve the old behavior of placing the .manifest file next to the binary when not linking incrementally even though it will be embedded.
* cmLocalGenerator: Create from already-constructed cmMakefile.Stephen Kelly2015-08-281-1/+2
| | | | Don't manage the lifetime of the cmMakefile with cmLocalGenerator.
* cmGlobalGenerator: Remove MakeLocalGenerator method.Stephen Kelly2015-08-281-1/+1
| | | | Inline implementation to callers.
* cmGlobalGenerator: Require a snapshot to create a local generator.Stephen Kelly2015-08-281-1/+3
|
* cmcmd: Improve error handling when executing a process.James Johnston2015-08-081-5/+14
|
* cmAlgorithms: Rename cmRange to cmMakeRange.Stephen Kelly2015-07-221-4/+5
|
* Windows: Optionally generate DLL module definition files automaticallyBill Hoffman2015-07-061-0/+39
| | | | | | | Create target property WINDOWS_EXPORT_ALL_SYMBOLS to automatically generate a module definition file from MS-compatible .obj files and give it to the linker in order to export all symbols from the .dll part of a SHARED library.
* Merge topic 'run-include-what-you-use'Brad King2015-05-211-0/+82
|\ | | | | | | | | | | ada5ffce Add options to run include-what-you-use with the compiler 67fa3da9 cmake: Add internal -E mode to run include-what-you-use with the compiler
| * cmake: Add internal -E mode to run include-what-you-use with the compilerBill Hoffman2015-05-191-0/+82
| | | | | | | | | | | | | | | | Add an internal "cmake -E __run_iwyu" mode to wrap the compiler call. Run a given include-what-you-use command line with the compiler options and report a warning if it finds anything. Then run the real compiler. Co-Author: Brad King <brad.king@kitware.com>
* | cmGlobalGenerator: Add NVI wrapper to create local generator.Stephen Kelly2015-05-161-1/+1
|/
* Merge topic 'clean-up-cmMakefile'Brad King2015-04-211-5/+2
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8dc3a67c cmMakefile: Out-of-line the directory methods. 0f3c8cfa cmMakefile: Use method abstraction to access directories. b288a997 cmMakefile: Rename SetStart* directory API to SetCurrent*. 932d53bc cmMakefile: Remove redundant method duplication. 32b8f03a cmMakefile: Port users of GetStart* methods to new names. 54d6a918 cmMakefile: Rename GetCurrent{Output,Binary}Directory. 55d80d0a cmMakefile: Rename GetCurrent{,Source}Directory. b23cf06f cmake: Remove redundant start directories. fcf246ac cmMakefile: Populate Home directories on initialize. 8878bea7 cmake: Initialize Home directories on cmake for find-package mode. 044dc815 Use the Home directories from the cmake class where intended. d67e8f24 cmake: Fix directory used to find the cache 1ea085d1 cmMakefile: Initialize dir definitions early. f034bb2f Remove redundant calls to MakeStartDirectoriesCurrent. 3a68c323 cmMakefile: Fix wrong parameter names.
| * cmMakefile: Rename SetStart* directory API to SetCurrent*.Stephen Kelly2015-04-201-2/+2
| |
| * cmake: Remove redundant start directories.Stephen Kelly2015-04-201-2/+0
| | | | | | | | | | | | | | | | | | They are maintained as containing the same content as the 'home' directories, but they are never read from. Fix some comments and help strings which confused the two by name. They actually mean what is called CMAKE_SOURCE_DIR in cmake code.
| * Remove redundant calls to MakeStartDirectoriesCurrent.Stephen Kelly2015-04-201-1/+0
| | | | | | | | The SetStart{,Output}Directory methods do what it does.
* | cmSystemTools: Teach RunSingleCommand to separate stdout and stderrBrad King2015-04-201-4/+4
|/ | | | | | | Extend the RunSingleCommand signature to capture stdout and stderr separately. Allow both to be captured to the same std::string to preserve existing behavior. Update all call sites to do this so that this refactoring does not introduce functional changes.
* cmake: Teach "-E tar" command a "--format=" optionNils Gladitz2015-04-101-2/+31
| | | | | | | Allows specifying a libarchive defined archive format currently restricted to 7zip, gnutar, pax, paxr and zip. The default is "paxr" (pax restricted).
* Include cmAlgorithms where it is used.Stephen Kelly2015-03-101-0/+1
|
* cmAlgorithms: Add cmWrap.Stephen Kelly2015-02-201-3/+1
| | | | | | | | | | | | | Port some existing cmJoin to use it. cmJoin is cumbersome to use in cases where the objective is to somehow 'quote' each item and then join it with a separator. In that case, the joiner string is harder to read and reason about. cmWrap aims to solve that. Provide an overload taking char wrappers to simplify the case of surrounding every element in quotes without needing to escape the quote character.
* Use cmJoin where possible.Stephen Kelly2015-02-201-21/+3
|
* cmcmd: Remove some comment copy-pasta.Stephen Kelly2015-02-171-4/+0
|
* Convert loops to cmJoin algorithm with cmRange.Stephen Kelly2015-02-111-13/+2
|
* Makefile: Fix output during parallel builds (#12991)Brad King2015-02-061-42/+75
| | | | | | | | | | Replace use of separate "cmake -E cmake_progress_report" and "cmake -E cmake_echo_color" commands to report the progress and message portions of build output lines with --progress-* options to the latter to print everything with a single command. The line buffering of the stdout FILE stream should cause the whole line to be printed with one atomic write. This will avoid inter-mixing of line-wise messages from different processes during a parallel build.
* bootstrap: Enable color Makefile outputBrad King2015-02-051-9/+2
| | | | | | Build the needed infrastructure during bootstrap in order to allow "cmake -E cmake_echo_color" to be used unconditionally during generation.
* cmake: Teach "-E tar" command a "--files-from=" optionBrad King2015-01-261-0/+53
| | | | | | Read file names from the lines of a specified file. Reject input lines starting in '-' to leave room for option parsing to be added later. Add just '--add-file=' now to allow files starting in '-' to be specified.
* cmake: Teach "-E tar" command a "--mtime=" optionBrad King2015-01-191-2/+24
| | | | | | | | | | Add an option to set the mtime of entries in a tarball so that one can create a tarball with a consistent content hash (e.g. MD5) for a given set of files regardless of their current timestamps on disk. This will be useful for submission of tarballs to CDash, which tracks content hashes to avoid duplication. Inspired-by: Bill Hoffman <bill.hoffman@kitware.com>
* Replace 'foo.size() == 0' pattern with foo.empty().Stephen Kelly2015-01-181-1/+1
|
* Merge topic 'add-xz-support'Brad King2015-01-121-8/+22
|\ | | | | | | | | | | | | | | 4035ef78 cmake -E tar: error out on multiple compression formats d811d238 cmSystemTools: use an enumeration for compression formats df16dcfb cmake -E tar: add support for .xz files with 'J' b0a5d393 cmake -E tar: clean up flag documentation
| * cmake -E tar: error out on multiple compression formatsBen Boeckel2015-01-121-0/+10
| |
| * cmSystemTools: use an enumeration for compression formatsBen Boeckel2015-01-121-9/+8
| | | | | | | | Juggling 3 booleans was unwieldy.
| * cmake -E tar: add support for .xz files with 'J'Ben Boeckel2015-01-091-2/+7
| |
| * cmake -E tar: clean up flag documentationBen Boeckel2015-01-081-1/+1
| |
* | Port all cmOStringStream to std::ostringstream.Stephen Kelly2015-01-111-1/+1
| | | | | | | | All compilers hosting CMake support the std class.
* | cmcmd: fix copy/paste typo in '-E tar t' commandBen Boeckel2015-01-051-1/+1
|/
* Remove some unneeded c_str calls.Stephen Kelly2014-11-231-3/+3
|
* strings: Remove redundant calls to std::string::c_str()Nils Gladitz2014-10-151-20/+20
| | | | | Replacements were detected and performed by the clang tool remove-cstr-calls on a linux build.
* cmake: Add '-E env' command-line toolBrad King2014-06-231-0/+51
| | | | | | | | | | | | | Extend the cmake command-line interface to support cmake -E env [--unset=NAME]... [NAME=VALUE]... COMMAND [ARG]... This will be useful to run processes with modified environments without using a shell or a full "cmake -P" script to wrap it. Extend the RunCMake.CommandLine test to cover success and failure cases. Inspired-by: Jonathan Bohren <jbo@jhu.edu>
* Remove c_str calls when using stream APIs.Stephen Kelly2014-03-111-13/+13
| | | | | Use an ad-hoc clang tool for matching the calls which should be ported.
* Remove some c_str() calls.Stephen Kelly2014-03-111-8/+8
| | | | | | Use the clang RemoveCStrCalls tool to automatically migrate the code. This was only run on linux, so does not have any positive or negative effect on other platforms.