summaryrefslogtreecommitdiffstats
path: root/Source/cmake.h
Commit message (Collapse)AuthorAgeFilesLines
* modermize: replace some raw pointers w/ `unique_ptr`Alex Turbov2019-06-241-18/+18
|
* cmake: Simplify implementation of -E capabilitiesBrad King2019-06-071-2/+2
| | | | | | The `cmake -E capabilities` command-line tool is implemented only in a full-featured (non-bootstrap) CMake, and server mode is now always available in this case.
* Merge topic 'default-generator-env'Brad King2019-05-221-0/+10
|\ | | | | | | | | | | | | | | | | d0f0ba0f7a Tests: Add environment generator tests a48ce8f4bf Help: Add documentation for default generator environment variables 083cf7e8a2 cmake: Allow default generator to be set by environment variables Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3218
| * cmake: Allow default generator to be set by environment variablesEicke Herbertz2019-05-161-0/+10
| | | | | | | | | | | | | | | | | | | | When there is no Generator available in the Cache, this will read CMAKE_GENERATOR from environment before using the CMake platform default. If CMAKE_GENERATOR is empty, use the platform default. If a environment default generator is specified, subsequent variables CMAKE_GENERATOR_(INSTANCE,PLATFORM,TOOLSET) are also evaluated in the same way.
* | Source: change parameters to std::stringVitaly Stakhovsky2019-05-191-2/+2
| |
* | message(): Add support for log levelsAlex Turbov2019-04-281-0/+20
|/ | | | | Relates: #18943 Co-Authored-By: Craig Scott <craig.scott@crascit.com>
* Fix invalid ///! doxygen comment line startsSebastian Holtermann2019-03-311-24/+24
| | | | | In various places `///!` was used to start a comment line. This is not valid Doygen syntax. This patch replaces `///!` comment starts with `//!`.
* Merge topic 'dont_do_compiler_feature_checks_for_version_with_no_features'Brad King2019-03-211-22/+37
|\ | | | | | | | | | | | | | | 85415afbdc CompileFeatures: Don't try_compile for language levels with no features 616282a5ce CMake: Provide language level compile features lists Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3128
| * CMake: Provide language level compile features listsRobert Maynard2019-03-201-22/+37
| | | | | | | | | | Now CMake stores what compile features are associated with each language level and exposes them as global properties.
* | Substitute FileComparison in variable names with FileTimeCacheSebastian Holtermann2019-03-181-2/+2
| |
* | Rename cmFileTimeComparison to cmFileTimeCacheSebastian Holtermann2019-03-181-3/+3
|/ | | | | The name `cmFileTimeCache` reflects the functionality of the class more appropriately.
* cmake: Teach --build mode to support multiple targetsBartosz Kosiorek2019-03-051-2/+2
| | | | Fixes: #16136
* cmake: Progress functions use `std::string` paramVitaly Stakhovsky2019-02-111-2/+2
|
* ReadListFile: Accept std::string argumentVitaly Stakhovsky2019-01-311-1/+2
|
* Merge topic 'unused-members'Brad King2019-01-311-14/+0
|\ | | | | | | | | | | | | ea9a376085 Remove unused 'class cmake' members Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !2895
| * Remove unused 'class cmake' membersBrad King2019-01-311-14/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * The `InTryCompile` member has been unused since commit 62854e9966 (cmState: Move try_compile state from cmake class., 2015-04-11, v3.3.0-rc1~196^2~9). * The `ConvertMessageType` and `IsMessageTypeVisible` members have been unused since commit 421012a330 (cmMessenger: Extract from cmake class, 2016-01-28, v3.7.0-rc1~222^2~1). * The `InitializeProperties` member has been unused since commit de722d7d63 (Move property initialization to cmState., 2015-04-06, v3.3.0-rc1~196^2~1). Co-Author: Vitaly Stakhovsky <vvs31415@gitlab.org>
* | Merge topic 'tidy-use-equals-delete'Brad King2019-01-301-2/+3
|\ \ | |/ |/| | | | | | | | | | | b05b778a2d clang-tidy: Use `= delete` Acked-by: Kitware Robot <kwrobot@kitware.com> Rejected-by: vvs31415 <vstakhovsky@fastmail.com> Merge-request: !2848
| * clang-tidy: Use `= delete`Regina Pfeifer2019-01-291-2/+3
| |
* | Use `std::function` for callbacksRegina Pfeifer2019-01-291-3/+3
|/
* Merge topic 'add_consistent_verbose_build_flag'Brad King2019-01-291-1/+2
|\ | | | | | | | | | | | | | | | | | | | | | | 66801f4d40 cmake: Add tests for verbose output to --build mode 439fe2e253 cmake: Add options for verbose output to --build mode 638667efa2 cmake: cmcmd.cxx fix "The arguments are" comments 3ca4402966 ctest: Fix --build-and-test without --build-target on Xcode cb6c233ecc cmake: Add -hideShellScriptEnvironment xcodebuild option 1a45266cb5 cmGlobalGenerator: Add a class that represent the build command Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !2708
| * cmake: Add options for verbose output to --build modeFlorian Maushart2019-01-281-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | While we already support `VERBOSE` environment variable and `CMAKE_VERBOSE_MAKEFILE` cached variable, add `-v` and `--verbose` command line options to be able to activate verbose output directly from CMake's build tool mode command line. Also make `msbuild` honor the verbosity setting. `xcodebuild` still doesn't honor the verbosity setting as it will need a policy added and reworking of cmGlobalGenerator and cmsys to support multiple command invocation.
* | Merge topic 'cmake-files-directory'Brad King2019-01-251-6/+0
|\ \ | |/ |/| | | | | | | | | | | 3e867ed400 cmake: inlined files dir constant and removed it from cmake.h Acked-by: Kitware Robot <kwrobot@kitware.com> Rejected-by: vvs31415 <vstakhovsky@fastmail.com> Merge-request: !2655
| * cmake: inlined files dir constant and removed it from cmake.hBruno Manganelli2019-01-211-6/+0
| |
* | Merge topic 'help-mark-default-generator'Brad King2019-01-221-1/+5
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | dfd5ae7da7 Help: Mark default CMake generator with asterisk 6023fe7ff2 ccmake: Append rather than replace Generators section of docs 7408cd3929 cmake: Return generator docs directly Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !2682
| * | Help: Mark default CMake generator with asteriskArtur Ryt2019-01-181-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | Required extracting default generator evaluation to explicit function, as Visual Studio generators get validated during their construction. Fixes: #18544
| * | cmake: Return generator docs directlyArtur Ryt2019-01-181-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | The GetGeneratorDocumentation() function was not accurately named and required the vector to populate to be passed as a function argument. This commit makes the slightly renamed function return by value, making it a true getter as implied by its name. Some minor refactoring of the implementation also makes the steps of populating the vector clearer.
* | | Add global generator factory method to get default platform nameBrad King2019-01-181-0/+1
| | |
* | | Add global generator factory method to get list of known platformsBrad King2019-01-181-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | Add a `cmGlobalGeneratorFactory::GetKnownPlatforms` method to return a list of known possible values for `CMAKE_GENERATOR_PLATFORM`. Implement the method for each generator by referencing the list of possible values documented in `Help/generator/*.rst` for it. Co-Author: Julien Jomier <julien.jomier@kitware.com>
* | | Split global generator factory list with and without platformsBrad King2019-01-181-1/+2
|/ / | | | | | | | | | | Replace `cmGlobalGeneratorFactory::GetGenerators` with a pair of methods to split the list of generator names into those that have platforms in the name and those that do not.
* | Properties: Add CMAKE_ROLE global propertyKyle Edwards2019-01-171-2/+2
|/ | | | | This property allows scripts to determine whether they're in project mode, script mode, find-package mode, CTest, or CPack.
* Factor out enum MessageType into dedicated headerBruno Manganelli2019-01-161-16/+4
| | | | Reduce the number of files relying on `cmake.h`.
* Merge topic 'cmake-option-parsing'Brad King2019-01-141-2/+1
|\ | | | | | | | | | | | | | | 27eb7c5bdb cmake: Ensure source and binary dirs are set a1adbc7243 cmake: Stop processing if -P option lacks file name Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !2799
| * cmake: Ensure source and binary dirs are setCraig Scott2019-01-131-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | If only the source dir is provided, the binary dir is assumed to be the working directory. If only the binary dir is provided and it doesn't yet have a CMakeCache.txt to provide the source dir, then the source dir is assumed to be the working directory. This logic was not previously being handled correctly when -S and/or -B options were involved. Furthermore, when both were missing, no suitable error message was provided and an empty string was used for the build directory. Fixes: #18707
* | fileapi: Add protocol v1 infrastructure with support for shared query filesBrad King2018-12-121-0/+3
|/ | | | | | | | | | | | | | | | | | | Add a file-based API that clients may use to get semantic information about the buildsystem that CMake generates. Clients will write query files under a designated location in the build tree, and CMake will write reply files for clients to read. Start with support for shared stateless query files. These allow clients to share requests for major object versions and get all those recognized by CMake. Once any client has written a shared request to a build tree it will persist. Other clients will not need to overwrite the request (since it is stateless) and should not remove it either. For now we add only an undocumented object kind to use for testing the query and reply infrastructure. Object kinds providing real semantic information will be added later. Issue: #18398
* cmake: Factor json version object construction into helperBrad King2018-09-211-0/+1
|
* cmake: -S and -B can be used to specify source and build directoriesRobert Maynard2018-09-151-1/+3
| | | | | | Document the previously internal option of '-B' and provide a matching source directory option with '-S'. Both '-B', and '-S' can be used independently of each other.
* cmake: Declare VariableWatch member only when usedBrad King2018-08-291-2/+6
|
* Revise C++ coding style using clang-format-6.0Kitware Robot2018-06-011-5/+7
| | | | | | | | | | | | 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.
* Merge topic 'parallel_build_option'Brad King2018-05-291-1/+4
|\ | | | | | | | | | | | | | | 1ab3881ec9 cmake: Add options for parallel builds to --build mode Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Henry Schreiner <henryschreineriii@gmail.com> Merge-request: !1962
| * cmake: Add options for parallel builds to --build modeFlorian Maushart2018-05-251-1/+4
| | | | | | | | | | | | | | While we already support `cmake --build . -- -j`, the options after `--` are specific to the native build tool. Add new options `--parallel [<N>]` and `-j [<N>]` to abstract this and map to the proper option for the native build tool.
* | Help: Update description of the -D option to CMakeRaul Laasner2018-05-241-1/+1
|/ | | | Fixes #18021
* Merge topic 'glob_configure_depends'Brad King2018-04-061-0/+10
|\ | | | | | | | | | | | | | | | | | | | | 6c4f8b4596 Adjust help documentation for file(GLOB), add topic notes 20612978c8 Add tests for `file(GLOB)` CONFIGURE_DEPENDS flag 3f4b81f540 Add glob verify support to XCode, VS, Ninja, and Makefile generators ca0befc2e1 Add `CONFIGURE_DEPENDS` flag support to cmFileCommand::HandleGlobCommand 599c93e22d Add cmGlobVerificationManager class, integrate with cmake and cmState Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1767
| * Add cmGlobVerificationManager class, integrate with cmake and cmStateShane Parris2018-03-291-0/+10
| |
* | Features: Add infrastructure for C++ 20 language standardBrad King2018-03-271-0/+1
|/ | | | Issue: #17849
* Reduce raw string pointers usage.Pavel Solodovnikov2018-01-311-2/+2
| | | | | | | | | | * 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.
* Performance: Improve efficiency of source file lookup in cmMakefileAaron Orenstein2017-11-171-0/+19
| | | | | | | | | 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.
* Add infrastructure for generators to select a build tool instanceBrad King2017-10-191-0/+7
| | | | | | | | | | | | | | Add cache entry `CMAKE_GENERATOR_INSTANCE` to hold the instance location persistently across re-runs of CMake in a given build tree. For now we reject the option by default if explicitly set. It will be implemented on a per-generator basis. Pass the setting into try_compile project generation. Add a RunCMake.GeneratorInstance test to cover basic use cases for the option. Verify that `CMAKE_GENERATOR_INSTANCE` is empty by default, and that it is rejected when the generator does not support a user setting. Issue: #17268
* cmake: Add --open option for IDE generatorsGregor Jasny2017-10-131-0/+3
|
* try_compile: Simplify generator platform and toolset propagationBrad King2017-09-271-12/+0
| | | | | | | | We don't need to save the `CMAKE_GENERATOR_{PLATFORM,TOOLSET}` values from the cache back into the `cmake` instance. They were used only to propagate the settings into `cmake` instances for `try_compile`, but we already have their values in the `cmMakefile`'s variables anyway. In fact those variables are the ones we actually give to the generators.
* IWYU: Mark cmConfigure.h with pragma: keepDaniel Pfeifer2017-08-261-1/+1
| | | | Also remove `#include "cmConfigure.h"` from most source files.