summaryrefslogtreecommitdiffstats
path: root/Source/cmState.h
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* cmState: Move extracted declarations to a separate fileStephen Kelly2016-10-191-45/+1
|
* cmState: Remove compatibility typedefsStephen Kelly2016-10-191-3/+0
|
* cmState: Move Snapshot type to separate namespaceStephen Kelly2016-10-191-85/+89
| | | | Leave behind a typedef to avoid porting dependent code in this commit.
* cmState: Move Directory class to separate namespaceStephen Kelly2016-10-191-68/+70
| | | | Leave behind a typedef to avoid porting dependent code in this commit.
* cmState: Move CacheEntryType enum to separate namespaceStephen Kelly2016-10-191-15/+17
| | | | Port dependent code to the change.
* cmState: Move TargetType enum to separate namespaceStephen Kelly2016-10-191-14/+14
|
* cmState: Move SnapshotType enum to separate namespaceStephen Kelly2016-10-181-13/+16
|
* cmState: Move PositionType to separate namespaceStephen Kelly2016-10-181-6/+3
| | | | Remove friend declarations supporting it being a nested type.
* cmState: Move PolicyStackEntry to separate namespaceStephen Kelly2016-10-181-2/+2
|
* cmState: Move SnapshotDataType to separate namespaceStephen Kelly2016-10-181-3/+4
|
* cmState: Move nested struct into separate top-level namespaceStephen Kelly2016-10-181-4/+11
| | | | | | Add a friend declaration to give the struct access to cmState::PositionType. This will be removed when that type is also extracted.
* 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.
* cmState: Record buildsystem target names in each directoryBrad King2016-09-191-0/+2
| | | | | | Maintain in the directory state the list of target names added to be built. These are normal, non-imported targets (but do include INTERFACE libraries).
* cmState: remove unused codeDaniel Pfeifer2016-09-171-8/+0
| | | | Remove the code that was used by cmOutputConverter exclusively.
* fix a batch of include-what-you-use violationsDaniel Pfeifer2016-08-161-4/+10
|
* use CM_NULLPTRDaniel Pfeifer2016-06-281-1/+1
|
* cmState: Expose list of properties of values in the cacheTobias Hunger2016-06-101-0/+1
|
* Pass arguments that are not modified as const&.Daniel Pfeifer2016-05-261-2/+2
| | | | | | | Use clang-tidy's performance-unnecessary-value-param checker to find value parameter declarations of expensive to copy types that are not modified inside the function. Ignore findings in kwsys. After applying the fix-its, manually change `const T&` to `T const&`.
* Revise C++ coding style using clang-formatKitware Robot2016-05-161-36/+47
| | | | | | | | | | | | | Run the `Utilities/Scripts/clang-format.bash` script to update all our C++ code to a new style defined by `.clang-format`. Use `clang-format` version 3.8. * 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.