summaryrefslogtreecommitdiffstats
path: root/Source/cmState.h
Commit message (Collapse)AuthorAgeFilesLines
* CMakePresets.json: Rework how --preset argument is handledKyle Edwards2020-10-261-0/+2
| | | | | | | | If a path argument with no -S or -B leads to a cache directory, use that directory as the binary directory. Otherwise, use the binary directory from the preset. Fixes: #21311
* cmake_language: Add signature to DEFER calls to later timesBrad King2020-09-291-0/+2
| | | | Fixes: #19575
* cmState: store commands in unordered_mapOleksandr Koval2020-09-111-3/+3
|
* Modernize: Use #pragma once in all header filesKitware Robot2020-09-031-4/+1
| | | | | | | | | | | | | | | | #pragma once is a widely supported compiler pragma, even though it is not part of the C++ standard. Many of the issues keeping #pragma once from being standardized (distributed filesystems, build farms, hard links, etc.) do not apply to CMake - it is easy to build CMake on a single machine. CMake also does not install any header files which can be consumed by other projects (though cmCPluginAPI.h has been deliberately omitted from this conversion in case anyone is still using it.) Finally, #pragma once has been required to build CMake since at least August 2017 (7f29bbe6 enabled server mode unconditionally, which had been using #pragma once since September 2016 (b13d3e0d)). The fact that we now require C++11 filters out old compilers, and it is unlikely that there is a compiler which supports C++11 but does not support #pragma once.
* Single location for cmProp typedefVitaly Stakhovsky2020-06-011-2/+0
|
* cmState: Drop unused and unimplemented SetCacheValue methodBrad King2020-05-261-1/+0
| | | | Fixes: #20758
* cmPropertyDefinitionMap: simplify and shortenTushar Maheshwari2020-05-151-6/+2
|
* cmState::GetInitializedCacheValue: return cmPropVitaly Stakhovsky2020-04-301-1/+1
| | | | cmProp alias is used; no actual change in type
* Merge topic 'cmprop-getglobalprop'Brad King2020-03-271-1/+1
|\ | | | | | | | | | | | | c84cf42897 cmState::GetGlobalProperty: return cmProp Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4521
| * cmState::GetGlobalProperty: return cmPropVitaly Stakhovsky2020-03-251-1/+1
| |
* | cmState::GetCacheEntryProperty: return cmPropVitaly Stakhovsky2020-03-251-2/+2
| |
* | cmState::GetTargetTypeName: return type is *cmPropVitaly Stakhovsky2020-03-191-1/+2
|/
* cmState::GetCacheEntryValue: return cmPropVitaly Stakhovsky2020-03-171-1/+3
|
* cmPropertyDefinition: Construct directly in defined stateVitaly Stakhovsky2020-03-131-2/+2
| | | | | Move `cmPropertyDefinitionMap::DefineProperty` functionality directly into the constructor to avoid an intermediate state.
* Ninja Multi-Config: Use build.ninja if cmake --build has no --configKyle Edwards2020-02-041-0/+1
| | | | | | If cmake --build is called with no --config argument, and a build.ninja file is available, use that instead of defaulting to the Debug config.
* AppendProperty: convert value param to std::stringVitaly Stakhovsky2020-01-251-1/+1
|
* cmState: more members will use std::stringVitaly Stakhovsky2020-01-021-3/+5
|
* Ninja: Add multi-config variantKyle Edwards2019-12-131-0/+3
| | | | Co-Authored-by: vector-of-bool <vectorofbool@gmail.com>
* cmCommand refactor: remove unused AddDisallowedCommand overloadGabor Bencze2019-08-261-3/+0
|
* cmState: Support free function disallowed commandsRegina Pfeifer2019-08-131-0/+2
|
* cmState: Support BuiltinCommands as free functionsRegina Pfeifer2019-07-221-0/+3
|
* cmState: Add scripted commands by valueRegina Pfeifer2019-07-211-2/+1
|
* cmUnexpectedCommand: Replace with lambda expressionRegina Pfeifer2019-07-211-0/+1
|
* cmState: Hold commands by valueRegina Pfeifer2019-07-211-4/+9
|
* modernize: manage cmCommand instances using unique_ptr.Marc Chevrier2019-07-141-5/+8
|
* IWYU: Fix handling of <memory> standard headerBrad King2019-07-101-0/+1
| | | | | | | | An old workaround for `std::allocator_traits<>::value_type` lints from IWYU on `std::vector<>` usage breaks IWYU's handling of `<memory>`. Convert the workaround to use the same approach we already use for a workaround of `std::__decay_and_strip<>::::__type` lints. Then update the `<memory>` inclusions to follow the now-correct IWYU lints.
* modermize: replace some raw pointers w/ `unique_ptr`Alex Turbov2019-06-241-2/+2
|
* Fix invalid ///! doxygen comment line startsSebastian Holtermann2019-03-311-1/+1
| | | | | In various places `///!` was used to start a comment line. This is not valid Doygen syntax. This patch replaces `///!` comment starts with `//!`.
* Delete some default constructors and assignment operatorsAlbert Astals Cid2019-02-151-0/+3
| | | | | | They are unused, but if someone used them they would lead to problems since they would copy the internal raw pointers and the destructor would cause double delete
* set: warn if CACHE type is not recognizedTaylor Holberton2019-01-301-0/+2
|
* Merge topic 'GHS_updates'Brad King2019-01-181-0/+3
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 21ab58d3f8 GHS: Update test suite 72e0c115b7 GHS: Add Compiler ID detection 436cc5e991 GHS: try_compile() now uses GHS platform variables 4a1ec0de3d GHS: Fix toolset selection 1a66acdef2 GHS: Append ".gpj" to target name when generating build command 0c9e47d7cd GHS: Integrity Application updates 8044318431 GHS: Add support for some of the source file properties 73092b2213 GHS: Add support for object libraries ... Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !2231
| * GHS: try_compile() now uses GHS platform variablesFred Baksik2019-01-161-0/+3
| | | | | | | | | | | | | | -- Forward GHS platform variables to try_compile() CMAKE_TRY_COMPILE_PLATFORM_VARIABLES only worked for source signature try_compile() -- Update tests to no longer add GHS platform variables to try_compile() -- Avoid linker error in GhsMulti/GhsMultiCompilerOptions/CMakeLists.txt by building library
* | Properties: Add CMAKE_ROLE global propertyKyle Edwards2019-01-171-0/+17
|/ | | | | This property allows scripts to determine whether they're in project mode, script mode, find-package mode, CTest, or CPack.
* clang-tidy: Use default member initializationRegina Pfeifer2018-12-151-8/+8
|
* Merge topic 'set_directory_properties-script-mode'Brad King2018-10-301-0/+1
|\ | | | | | | | | | | | | 50572d638b set_directory_properties: Restore in script mode Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !2544
| * set_directory_properties: Restore in script modeBrad King2018-10-291-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | Since commit v3.10.0-rc1~391^2~3 (Add directory property 'LABELS' and CMAKE_DIRECTORY_LABELS variable, 2017-06-23) this command was accidentally not allowed in script mode. It was dropped because `ctest -S` mode needs to start with CMake's normal script mode and then replace the `set_directory_properties` implementation. Restore the normal `set_directory_properties` in script mode and then add special logic to replace it in ctest. Also add a test case. Fixes: #18523
* | cmState::GetInitializedCacheValue: Return as const std::string*Vitaly Stakhovsky2018-09-101-1/+1
| |
* | Revise implementation of case-insensitive command namesFlorian Jacomme2018-05-221-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Store both the as-written and lower-case command names and use the latter to avoid case-insensitive string comparisons. With this I obtain 2-6% speed increase (on Windows) for the configure step with no significant changes in memory usage. A case-insensitive comparison is a lot slower than just calling `==` because the operator will use things like memcmp, so prefer the latter. The `cmSystemTools::LowerCase` function allocates a new string each time it is called, so before this change we were allocating in: * cmMakefile::Configure two times for each function (to look for `cmake_minimum_required` and `project`) * cmMakefile::ExecuteCommand twice by function by calling cmState::GetCommand and copying the name Now we are only allocating once by function instead of four.
* | Add cmGlobVerificationManager class, integrate with cmake and cmStateShane Parris2018-03-291-0/+14
| |
* | 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.
* | cmCacheManager: Truncate values containing newlinesKyle Edwards2018-01-151-1/+2
|/ | | | Fixes #16098.
* Pass large types by const&, small types by valueDaniel Pfeifer2017-06-031-12/+14
|
* cmState: separate builtin and scripted commandsDaniel Pfeifer2017-05-111-3/+2
|
* cmState: introduce method for adding scripted commandsDaniel Pfeifer2017-05-111-0/+1
|
* cmState: introduce methods for adding builtin commandsDaniel Pfeifer2017-05-111-0/+5
|
* cmState: remove RemoveUnscriptableCommandsDaniel Pfeifer2017-05-081-1/+0
|
* Use quotes for non-system includesDaniel Pfeifer2017-04-111-1/+1
| | | | | | | | | | | | | 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'
* Add GENERATOR_IS_MULTI_CONFIG global propertyBastien Schatt2017-04-041-0/+4
| | | | Fixes: #16768
* Fix several include-what-you-use findingsDaniel Pfeifer2016-11-081-9/+6
|
* cmState: Split auxiliary classes into separate filesStephen Kelly2016-10-191-135/+0
| | | | | | | 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.