summaryrefslogtreecommitdiffstats
path: root/Source/cmState.cxx
Commit message (Collapse)AuthorAgeFilesLines
* CMake: Provide language level compile features listsRobert Maynard2019-03-201-0/+19
| | | | | Now CMake stores what compile features are associated with each language level and exposes them as global properties.
* set: warn if CACHE type is not recognizedTaylor Holberton2019-01-301-2/+11
|
* Avoid -Wstring-plus-int warningBrad King2019-01-231-2/+2
| | | | | | | | In `cmState::GetGlobalProperty` we use a macro to produce a string of the form ";a;b;c" and want to return "a;b;c" by skipping the leading ";". Switch from pointer arithmetic to indexing+addressing to silence the "warning: adding 'int' to a string does not append to the string" diagnostic from Clang.
* Merge topic 'GHS_updates'Brad King2019-01-181-0/+10
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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/+10
| | | | | | | | | | | | | | -- 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/+37
|/ | | | | 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/+0
|
* Using front() and back() instead of calculationsCengizhan Pasaoglu2018-11-061-4/+4
|
* Merge topic 'set_directory_properties-script-mode'Brad King2018-10-301-0/+10
|\ | | | | | | | | | | | | 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/+10
| | | | | | | | | | | | | | | | | | | | | | | | 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
* | LINK_DIRECTORIES: Add new properties and commandsMarc Chevrier2018-09-251-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | These new capabilities enable to manage link directories Two new properties: * target properties: LINK_DIRECTORIES and INTERFACE_LINK_DIRECTORIES One new command * target_link_directories(): to populate target properties Fixes: #17215
* | LINK_OPTIONS: Add missing initialization actionsMarc Chevrier2018-09-171-0/+3
| |
* | cmState::GetInitializedCacheValue: Return as const std::string*Vitaly Stakhovsky2018-09-101-3/+3
| |
* | Merge topic 'gicv-stdstring'Brad King2018-09-101-1/+2
|\ \ | | | | | | | | | | | | | | | | | | 46855d000f cmCacheManager::GetInitializedCacheValue(): Return as const std::string* Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !2357
| * | cmCacheManager::GetInitializedCacheValue(): Return as const std::string*Vitaly Stakhovsky2018-09-061-1/+2
| | | | | | | | | | | | Expose std::string type used internally instead of const char*
* | | cmStateSnapshot::GetDefinition(): Return std::string const*Vitaly Stakhovsky2018-09-061-2/+2
|/ / | | | | | | Expose std::string type used internally in cmDefinitions instead of const char*
* | Merge topic 'state-reset-glob'Brad King2018-08-241-0/+1
|\ \ | | | | | | | | | | | | | | | | | | 6f3b9e8b95 cmState: Clear GlobVerificationManager state on Reset Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !2278
| * | cmState: Clear GlobVerificationManager state on ResetShane Parris2018-08-091-0/+1
| | | | | | | | | | | | | | | | | | It should not persist across multiple configure rounds. Fixes: #18208
* | | LINK_OPTIONS: Add new family of propertiesMarc Chevrier2018-06-061-0/+2
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | This family enable to manage link flags Three new properties: * directory property: LINK_OPTIONS * target properties: LINK_OPTIONS and INTERFACE_LINK_OPTIONS Two new commands * add_link_options(): to populate directory property * target_link_options(): to populate target properties Fixes: #16543
* | Revise implementation of case-insensitive command namesFlorian Jacomme2018-05-221-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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/+36
| |
* | Reduce raw string pointers usage.Pavel Solodovnikov2018-01-311-5/+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.
* | cmCacheManager: Truncate values containing newlinesKyle Edwards2018-01-151-2/+2
|/ | | | Fixes #16098.
* Meta: modernize old-fashioned loops to range-based `for`.Pavel Solodovnikov2017-09-121-8/+4
| | | | | | Changes done via `clang-tidy` with some manual fine-tuning for the variable naming and `auto` type deduction where appropriate.
* Replace C-style castsDaniel Pfeifer2017-08-271-1/+1
|
* Use C++11 nullptrDaniel Pfeifer2017-08-241-7/+7
|
* Pass large types by const&, small types by valueDaniel Pfeifer2017-06-031-8/+8
|
* cmCommand: remove unused methods from interface and all implementationsDaniel Pfeifer2017-05-111-1/+0
|
* cmState: separate builtin and scripted commandsDaniel Pfeifer2017-05-111-67/+50
|
* cmState: introduce method for adding scripted commandsDaniel Pfeifer2017-05-111-0/+6
|
* cmState: introduce methods for adding builtin commandsDaniel Pfeifer2017-05-111-0/+23
|
* cmState: remove RemoveUnscriptableCommandsDaniel Pfeifer2017-05-081-15/+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/+14
| | | | Fixes: #16768
* clang-tidy: apply modernize-use-bool-literals fixesDaniel Pfeifer2016-12-121-1/+1
|
* Fix several include-what-you-use findingsDaniel Pfeifer2016-11-081-9/+7
|
* Remove cmObject.h and cmTypeMacro.hDaniel Pfeifer2016-10-241-1/+0
|
* Make cmCommand not inherit from cmObjectDaniel Pfeifer2016-10-221-2/+1
|
* cmState: Split auxiliary classes into separate filesStephen Kelly2016-10-191-992/+2
| | | | | | | 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 Snapshot type to separate namespaceStephen Kelly2016-10-191-87/+85
| | | | Leave behind a typedef to avoid porting dependent code in this commit.
* cmState: Move Directory class to separate namespaceStephen Kelly2016-10-191-47/+45
| | | | Leave behind a typedef to avoid porting dependent code in this commit.
* cmState: Move CacheEntryType enum to separate namespaceStephen Kelly2016-10-191-7/+8
| | | | Port dependent code to the change.
* cmState: Move TargetType enum to separate namespaceStephen Kelly2016-10-191-10/+10
|
* cmState: Move SnapshotType enum to separate namespaceStephen Kelly2016-10-181-18/+18
|
* cmState: Move PositionType to separate namespaceStephen Kelly2016-10-181-23/+26
| | | | Remove friend declarations supporting it being a nested type.
* cmState: Move PolicyStackEntry to separate namespaceStephen Kelly2016-10-181-9/+10
|
* cmState: Move SnapshotDataType to separate namespaceStephen Kelly2016-10-181-1/+1
|
* cmState: Move nested struct into separate top-level namespaceStephen Kelly2016-10-181-5/+5
| | | | | | 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.
* Add directory properties to get source and binary directoriesBrad King2016-09-191-0/+10
| | | | | | Add SOURCE_DIR and BINARY_DIR directory properties that return the absolute paths to the corresponding directories. These correspond to the target properties of the same names that we already have.