summaryrefslogtreecommitdiffstats
path: root/Source/cmCacheManager.cxx
Commit message (Collapse)AuthorAgeFilesLines
* Use cmSystemTools::GetCMakeCommand() to get path to cmake internallyBrad King2015-05-201-8/+3
| | | | | This is much simpler than finding a way to lookup "CMAKE_COMMAND" everywhere.
* cmState: Move CacheEntryType enum from cmCacheManager.Stephen Kelly2015-04-131-71/+25
|
* cmCacheManager: Rename GetCacheValue to GetInitializedCacheValue.Stephen Kelly2015-04-071-6/+10
| | | | | Being initialized is a requirement for this method to return something, and is what differentiates it from using GetIterator with it.GetValue.
* Merge topic 'refactor-cache-api'Brad King2015-04-071-10/+6
|\ | | | | | | | | 3347c5e4 Revert topic 'refactor-cache-api'
| * Revert topic 'refactor-cache-api'Brad King2015-04-071-10/+6
| | | | | | | | | | | | This topic was never tested without some follow-up commits. The GetCacheEntryValue API returns a pointer to memory freed on return. It will have to be revised along with the rest of the original topic.
* | Merge topic 'refactor-cache-api'Brad King2015-04-071-6/+10
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | 9410e24a cmCacheManager: Port consumers to non-iterator API. 7b7ae3b1 Port QtDialog to non-iterator cache API. 228c629c Port CursesDialog to non-iterator cache API. 2e50f5e7 cmMakefile: Port away from CacheEntry.Initialized. e6224367 cmCacheManager: Add non-iterator-based API. 9ada4c04 cmCacheManager: Rename GetCacheValue to GetInitializedCacheValue. 1fe7f24c Add API for cache loading, deleting and saving to the cmake class. 08c642c6 cmMakefile: Remove cache version accessors. cec8f97e cmMakefile: Simplify GetDefinitions implementation.
| * cmCacheManager: Rename GetCacheValue to GetInitializedCacheValue.Stephen Kelly2015-04-061-6/+10
| | | | | | | | | | Being initialized is a requirement for this method to return something, and is what differentiates it from using GetIterator with it.GetValue.
* | Remove unused includes.Stephen Kelly2015-04-061-1/+0
|/
* cmCacheManager: Remove unused methodStephen Kelly2015-04-051-18/+0
|
* cmCacheManager: Remove unused overloads.Stephen Kelly2015-04-051-19/+0
|
* cmCacheManager: Remove use of intermediate overload.Stephen Kelly2015-04-051-1/+2
|
* cmCacheManager: Replace loop with algorithm.Stephen Kelly2015-02-201-5/+1
|
* Replace foo.size() pattern with !foo.empty().Stephen Kelly2015-01-181-1/+1
|
* Merge topic 'fix--D-command-line-parsing'Brad King2014-10-301-1/+1
|\ | | | | | | | | | | aee7e4a0 cmCacheManager: parse -D flags more strictly 368e8de4 Tests: test -D parsing on the command line
| * cmCacheManager: parse -D flags more strictlyBen Boeckel2014-10-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | In the case of: -DCACHE_VARS=-DEXTERNAL_PROJECT_CMAKE_ARG:BOOL=TRUE the variable is parsed out as: CACHE_VARS=-DEXTERNAL_PROJECT_CMAKE_ARG because the parser allows '=' in the variable name. Disallow such a name on the command line.
* | strings: Remove redundant calls to std::string::c_str()Nils Gladitz2014-10-151-5/+5
|/ | | | | Replacements were detected and performed by the clang tool remove-cstr-calls on a linux build.
* Merge topic 'fix-cache-self-assignment'Brad King2014-05-281-5/+1
|\ | | | | | | | | | | 1cd37527 cmCacheManager: Avoid cache entry self-assignment 326d15a3 cmake: Tolerate missing HELPSTRING on compiler change
| * cmCacheManager: Avoid cache entry self-assignmentBrad King2014-05-271-5/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | Since commit bef93dc5 (Couple of changes: cache variables now have a map of properties, 2002-09-11) the cmCacheManager::AddCacheDefinition method accesses its map entry by reference. However, the commit left the original entry assignment at the end of the method. With Apple Clang 5.1 and libc++ this self-assignment destroys the cache entry property map. Drop the self assignment. Also drop the condition around the call to UnwatchUnusedCli since it was a self-comparison that must always have been true.
* | Remove c_str calls when using stream APIs.Stephen Kelly2014-03-111-2/+2
| | | | | | | | | | Use an ad-hoc clang tool for matching the calls which should be ported.
* | stringapi: Miscellaneous char* parametersBen Boeckel2014-03-081-2/+2
| |
* | strings: Remove cmStdString referencesBen Boeckel2014-03-081-5/+5
| | | | | | | | | | | | | | | | | | | | | | Casts from std::string -> cmStdString were high on the list of things taking up time. Avoid such implicit casts across function calls by just using std::string everywhere. The comment that the symbol name is too long is no longer relevant since modern debuggers alias the templates anyways and the size is a non-issue since the underlying methods are generated since it's inherited.
* | stringapi: Use strings for cache paths as argumentsBen Boeckel2014-03-081-6/+6
| |
* | stringapi: Use strings for variable namesBen Boeckel2014-03-081-5/+6
| | | | | | | | Variable names are always generated by CMake and should never be NULL.
* | stringapi: Use strings for property namesBen Boeckel2014-03-081-15/+19
|/ | | | Property names are always generated by CMake and should never be NULL.
* cmVersion: Fix CMake_VERSION_ENCODE for date in patch levelBrad King2014-02-101-1/+1
| | | | | | | | | Use a uint64_t to store encoded version numbers so we have plenty of bits available. Encode with room for up to 1000 minor releases between major releases and to encode dates until the year 10000 in the patch level. This is necessary because CMake development versions prior to release 2.8.0 used the date in the patch level, and this practice may be restored after the 3.0 release.
* Use cmsys::[io]fstream instead of cmsys_ios::[io]fstream.Clinton Stimpson2014-01-071-3/+3
| | | | | Also use SystemTools::Fopen() instead of fopen(). This is to eventually support utf-8 filenames.
* Drop builtin property documentationBrad King2013-10-161-62/+0
| | | | | | Drop all DefineProperty calls for non-chained properties. Drop the documentation from the chained ones. The documentation for all properties is now in Help/prop_*/*.rst files.
* CLI: Suppress the unused warning if the key value pair is cached.Stephen Kelly2013-06-041-0/+4
| | | | | | | | | | | | | | | It is common to specify a CMAKE_TOOLCHAIN_FILE and get a warning for using it despite it not being used. The WarnUnusedCliUnused test relies on the warning being emitted each time cmake is run on an existing build. That behavior is changed by this patch to warn only on the first invokation of CMake, and not on subsequent invokations (because the variable is in the cache with the same value). For that test, a clean target is added which clears the cache and cause the warning to be emitted each time. As the Ninja generator does not support the feature needed to test this, it is not tested with that generator.
* Fix spelling and typos (affecting binary data / module messages)Andreas Mohr2013-05-071-1/+1
|
* Delete entire CMakeFiles directory when deleting CMakeCache.txt (#13756)Brad King2013-02-181-16/+8
| | | | | | | | | | | | | | | | | | | | | | | | Since commit e015df7d (...delete CMakeFiles directory when cache is deleted, 2006-02-20) we deleted the files in the CMakeFiles directory when deleting CMakeCache.txt in order to reset the build tree to a fresh state. This allowed commit fd33bf93 (fix for bug 6102, allow users to change the compiler, 2007-12-13) to delete CMakeCache.txt when the user changes the compiler and CMakeFiles/CMake<lang>Compiler.cmake and other platform information files would go with it to allow a fresh start. Then commit 7195aca5 (Make platform information files specific to the CMake version, 2012-08-24) moved the platform information files to a subdirectory e.g. CMakeFiles/<version>/CMake<lang>Compiler.cmake where <version> is the current CMake version. This causes the compiler change logic to fail to remove all old compiler information. Then on the next configuration CMake<lang>Compiler.cmake would set CMAKE_<lang>_COMPILER back to the old value and re-trigger the compiler change logic. This causes an infinite loop of cache deletion and compiler reset. Fix this simply by teaching cmCacheManager::DeleteCache to remove the entire CMakeFiles directory recursively whenever it removes an existing CMakeCache.txt. This fully resets the build tree to configure with a fresh compiler.
* Remove trailing whitespace from most CMake and C/C++ codeKitware Robot2012-08-131-9/+9
| | | | | | | | | | | | | | | | | Our Git commit hooks disallow modification or addition of lines with trailing whitespace. Wipe out all remnants of trailing whitespace everywhere except third-party code. Run the following shell code: git ls-files -z -- \ bootstrap doxygen.config '*.readme' \ '*.c' '*.cmake' '*.cpp' '*.cxx' \ '*.el' '*.f' '*.f90' '*.h' '*.in' '*.in.l' '*.java' \ '*.mm' '*.pike' '*.py' '*.txt' '*.vim' | egrep -z -v '^(Utilities/cm|Source/(kwsys|CursesDialog/form)/)' | egrep -z -v '^(Modules/CPack\..*\.in)' | xargs -0 sed -i 's/ \+$//'
* Write CMakeCache.txt atomically (#13040)Brad King2012-03-141-7/+4
| | | | | | | The write code introduced by commit 0b0d1b1d (add CMakeCache.txt support, 2001-02-22) uses a temporary file but does not replace the original atomically. Use cmGeneratedFileStream to do both copy-if-different and atomic replacement.
* Fix #12342: Add APPEND_STRING option to set_property()Alex Neundorf2011-07-151-5/+7
| | | | | | | | | set_property() has APPEND, which creates a list. E.g. when appending to COMPILE_FLAGS a string is needed, not a list. With the APPEND_STRING option the value is append as string, not as list. Alex
* Correct misspelling in error message text.David Cole2010-12-061-1/+1
|
* Condense parsing of cache entriesBen Boeckel2010-11-221-5/+9
| | | | | If a cache line is being parsed, it shouldn't matter whether it has a type or not; just parse it however possible.
* Support manual cache entriesBen Boeckel2010-11-221-1/+2
|
* Fix parsing of cache variables without a typeBen Boeckel2010-11-221-3/+3
| | | | | | | | | These mainly come from the command line or manual entries in the CMakeCache.txt file. We want to stop at the first '=' because this is what is most likely to have been meant. The variable can be quoted if the '=' is intended. Caveat: What if one wants both '"' and '=' in a variable name?
* Remove unused #include <windows.h>Brad King2010-01-131-4/+0
|
* Fix warnings in CMake source code. Suppress warnings in Lexer and Parser ↵David Cole2009-09-301-2/+4
| | | | files that are 'too hard' to fix.
* Convert CMake to OSI-approved BSD LicenseBrad King2009-09-281-14/+9
| | | | | | | This converts the CMake license to a pure 3-clause OSI-approved BSD License. We drop the previous license clause requiring modified versions to be plainly marked. We also update the CMake copyright to cover the full development time range.
* Remove barely-used cmCacheManager::AddCacheEntryBrad King2009-09-111-13/+0
| | | | | | | The commit "Remove barely-used cmMakefile::AddCacheDefinition" removed all but one use of the cmCacheManager method 'bool' overload. This commit removes the other use and the entire method, thus reducing code duplication.
* BUG: Document internal cache property MODIFIEDBrad King2009-03-131-0/+7
| | | | | All cmake-defined properties should be documented, even if they are internal. This fixes the DocTest when CMAKE_STRICT is enabled.
* BUG: Fix cache properties for CMAKE_STRICT buildBrad King2009-03-131-1/+5
| | | | | All cmPropertyMap instances must have CMakeInstance set. This teaches cmCacheManager to set it on cache entries.
* COMP: Do not use void returnsBrad King2009-03-121-1/+1
| | | | | VS 6 does not support the C++ void returns feature. This removes an accidental use of it.
* ENH: Define STRINGS cache entry propertyBrad King2009-03-121-0/+11
| | | | | | | This property defines a list of values for a cache entry of type STRING. A CMake GUI may optionally use a drop-down selection widget for the entry instead of a generic text entry field. We do not enforce that the value of the entry match one of the strings listed.
* ENH: Refactor cache entry writing and readingBrad King2009-03-121-163/+103
| | | | | | This factors out duplicated code into reusable methods, thus simplifying writing and reading of cache entry help strings, keys, values, and properties.
* ENH: Document CACHE entry propertiesBrad King2009-03-101-0/+45
| | | | | This adds a property documentation section for CACHE properties. We document the ADVANCED, HELPSTRING, TYPE, and VALUE properties.
* ENH: Teach set/get_property about CACHE propertiesBrad King2009-03-101-0/+12
| | | | | | | | This adds the CACHE option to set_property and get_property commands. This allows full control over cache entry information, so advanced users can tweak their project cache as desired. The set_property command allows only pre-defined CACHE properties to be set since others would not persist anyway.
* ENH: Use cmPropertyMap for cache propertiesBrad King2009-03-101-99/+93
| | | | | This re-implements cache entry property storage in cmCacheManager to use cmPropertyMap so it can share the standard property implementation.
* ENH: Overhaul CMake version numberingBrad King2009-03-051-4/+3
| | | | | | | | | | | | | This moves the version numbers into an isolated configured header so that not all of CMake needs to rebuild when the version changes. Previously we had spaces, dashes and/or the word 'patch' randomly chosen before the patch number. Now we always report version numbers in the traditional format "<major>.<minor>.<patch>[-rc<rc>]". We still use odd minor numbers for development versions. Now we also use the CCYYMMDD date as the patch number of development versions, thus allowing tests for exact CMake versions.