summaryrefslogtreecommitdiffstats
path: root/Source/cmCacheManager.cxx
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* ENH: fix fix for unc pathsBill Hoffman2009-02-101-0/+1
|
* BUG: fix for 0008378, lists with FILEPATH and UNC //server/path failBill Hoffman2009-02-091-1/+18
|
* ENH: Add unset() command.Brad King2008-08-251-4/+0
| | | | | | | | This introduces the unset() command to make it easy to unset CMake variables, environment variables, and CMake cache variables. Previously it was not even possible to unset ENV or CACHE variables (as in completely remove them). Changes based on patch from Philip Lowman. See issue #7507.
* BUG: Fix uninitialzed members of cmCacheManager.Brad King2008-01-291-0/+6
|
* ENH: Added cmMakefile::NeedCacheCompatibility method and support for it in ↵Brad King2008-01-241-3/+38
| | | | cmCacheManager. This will allow commands to modify their behavior when running with a cache loaded from an earlier CMake version.
* ENH: fix spelling errorBill Hoffman2007-09-071-1/+1
|
* ENH: -U for removing variables now uses globbing expressionsAlexander Neundorf2007-06-041-1/+1
| | | | | | | -cmCacheManager: now also variables with type UNINITIALIZED are saved in CMakeCache.txt, these are the vars defined using -DFOO=foo but without type Alex
* ENH: also handle comments for variables which contain newlinesAlexander Neundorf2007-06-011-17/+20
| | | | Alex
* ENH: unify version stuff, get rid of it out of cmake and cmMakefile and only ↵Bill Hoffman2006-11-291-3/+4
| | | | use cmVersion
* ENH: centralized locaiton of CMakeFiles settingKen Martin2006-06-141-3/+5
|
* STYLE: fix line lengthKen Martin2006-05-101-4/+4
|
* ENH: Remove cmGlob and use glob from kwsysAndy Cedilnik2006-03-211-2/+3
|
* STYLE: some m_ to this-> cleanupKen Martin2006-03-151-88/+89
|
* STYLE: Fix some style issuesAndy Cedilnik2006-03-101-90/+114
|
* ENH: if CMakeCache.txt has been removed, then automatically remove ↵Bill Hoffman2006-03-091-0/+21
| | | | CMakefiles/*.cmake
* ENH: better finding of mingw from msys, and delete CMakeFiles directory when ↵Bill Hoffman2006-02-211-0/+19
| | | | cache is deleted