summaryrefslogtreecommitdiffstats
path: root/Source/cmListFileCache.cxx
Commit message (Collapse)AuthorAgeFilesLines
* cmake: Do not open directories as scripts (#14966)Brad King2014-06-091-1/+2
| | | | | Check if a file path is a directory before opening it. Extend the RunCMake.CommandLine test with a case running "cmake -P" on a directory.
* backtrace: Convert to local paths in IssueMessageBen Boeckel2014-06-051-0/+18
| | | | | This is the only place we care show the FilePath to the user, so defer the expensive relative path calculation until here.
* Remove some c_str() calls.Stephen Kelly2014-03-111-2/+2
| | | | | | Use the clang RemoveCStrCalls tool to automatically migrate the code. This was only run on linux, so does not have any positive or negative effect on other platforms.
* Add Lua-style long brackets and long comments to CMake languageBrad King2013-10-171-31/+49
| | | | | | | | | | | | | | | | | Teach the CMake language parser to recognize Lua-style "long bracket" arguments. These start with two '[' separated by zero or more '=' characters e.g. "[[" or "[=[" or "[==[". They end with two ']' separated by the same number of '=' as the opening bracket. There is no nesting of brackets of the same level (number of '='). No escapes, variable expansion, or other processing is performed on the content between such brackets so they always represent exactly one argument. Also teach CMake to parse and ignore "long comment" syntax. A long comment starts with "#" immediately followed by an opening long bracket. It ends at the matching close long bracket. Teach the RunCMake.Syntax test to cover long bracket and long comment cases.
* cmListFileLexer: Allow a leading UTF-8 Byte-Order-Mark (#11137)Brad King2013-10-171-1/+14
| | | | | | Teach the lexer to read a UTF-8, UTF-16 BE/LE, or UTF-32 BE/LE Byte-Order-Mark from the start of a file if any is present. Report an error on files using UTF-16 or UTF-32 and accept a UTF-8 or missing BOM.
* Do not warn about left paren not separated by a spaceBrad King2013-08-151-1/+1
| | | | | | | | | | Since commit 58e52416 (Warn about arguments not separated by whitespace, 2013-02-16) we warn about arguments not separated by spaces. Loosen the warning to not complain about left parens not separated by spaces from the preceding token. This is common in code like "if(NOT(X))". Teach the RunCMake.Syntax test to cover cases of left parens not separated by spaces and check that no warning appears.
* Warn about unquoted arguments that look like long bracketsBrad King2013-08-081-0/+21
| | | | | | | | | In the future CMake will introduce Lua-style long bracket syntax. Warn about unquoted arguments that in the future will be treated as opening long brackets. Teach the RunCMake.Syntax test to cover such cases and ensure that the warning appears.
* Warn about arguments not separated by whitespaceBrad King2013-08-081-6/+34
| | | | | | | | | | | Teach the lexer to return tokens for whitespace. Teach the parser to tolerate the space tokens where whitespace is allowed. Also teach the parser to diagnose and warn about cases of quoted arguments followed immediately by another argument. This was accidentally allowed previously, so we only warn. Update the RunCMake.Syntax test case StringNoSpace expected stderr to include the warnings.
* cmListFileCache: Convert CMake language parser to classBrad King2013-08-081-69/+97
| | | | | Refactor the parser implementation into a class to make it easier to extend.
* cmListFileArgument: Generalize 'Quoted' bool to 'Delimeter' enumBrad King2013-08-081-9/+10
| | | | | | Replace the boolean value that indicates whether an argument is unquoted or quoted with a generalized enumeration of possible argument types. For now "Quoted" and "Unquoted" remain the only types.
* Remove trailing whitespace from most CMake and C/C++ codeKitware Robot2012-08-131-10/+10
| | | | | | | | | | | | | | | | | 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/ \+$//'
* 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.
* ENH: support parenthesis as arguments and in conditionals feature request #6191Ken Martin2008-06-261-2/+17
|
* ENH: write the cmake version into the file created by ↵Alexander Neundorf2008-04-271-1/+2
| | | | | | | | | | EXPORT_LIBRARY_DEPENDENCIES() to help with debugging later on. The same should be done in the import target files (but I didn't have time to do it yet). STYLE: fix line length in cmListFileCache.cxx Alex
* ENH: Allow policy CMP0000 to be set explicitlyBrad King2008-03-311-24/+6
| | | | | | | | - Message for missing cmake_minimum_required is not issued until the end of processing the top CMakeLists.txt file - During processing a cmake_policy command may set behavior - OLD behavior is to silently ignore the problem - NEW behavior is to issue an error instead of a warning
* ENH: tiny performance improvementKen Martin2008-03-201-1/+2
|
* ENH: small simple projects do not need to specify cmake minimum requiredKen Martin2008-03-201-1/+35
|
* ENH: Improve warning about specifying a cmake versionBrad King2008-03-191-23/+24
| | | | | | | | | | - Update policy CMP0000 to require use of the command cmake_minimum_required and not cmake_policy so there is only one way to avoid it. - Explicitly specify the line users should add. - Reference policy CMP0000 only at the end. - Fix policy CMP0000 documentation to not suggest use of the cmake_policy command.
* ENH: Improve new error/warning message generationBrad King2008-03-131-0/+15
| | | | | | | | | | - Add cmListFileBacktrace to record stack traces - Move main IssueMessage method to the cmake class instance (make the backtrace an explicit argument) - Change cmMakefile::IssueMessage to construct a backtrace and call the cmake instance version - Record a backtrace at the point a target is created (useful later for messages issued by generators)
* ENH: change CMP_ to CMPKen Martin2008-03-131-3/+3
|
* ENH: add enum to IssueMessageBill Hoffman2008-03-111-2/+2
|
* ENH: Improve handling of old-style compatibility.Brad King2008-03-071-0/+3
| | | | | | | | | | | | | | | | | | | - Remove CMP_0001 (no slash in target name) and restore old CMAKE_BACKWARDS_COMPATIBILITY check for it - Replace all checks of CMAKE_BACKWARDS_COMPATIBILITY with cmLocalGenerator::NeedBackwardsCompatibility calls - Create new CMP_0001 to determine whether or not CMAKE_BACKWARDS_COMPATIBILITY is used. (old = use, new = ignore) - Show CMAKE_BACKWARDS_COMPATIBILITY in cache only when CMP_0001 is set to OLD or WARN - Update documentation of cmake_policy and cmake_minimum_required to indicate their relationship and the 2.4 version boundary - When no cmake policy version is set in top level makefile implicitly call cmake_policy(VERSION 2.4) which restores CMAKE_BACKWARDS_COMPATIBILITY and other 2.4 compatibility - Fix tests MakeClean and Preprocess to call cmake_policy(VERSION 2.6) because they depend on new policies
* ENH: clean up some policy stuff and interactions with ↵Ken Martin2008-03-071-26/+5
| | | | CMAKE_BACKWARDS_COMPATIBILITY and CMAKE_MINIMUM_REQUIRED
* STYLE: fix line length issueKen Martin2008-03-071-2/+4
|
* ENH: New format for warning and error messagesBrad King2008-03-071-6/+6
| | | | | | | | | | | | | - Add cmMakefile methods IssueError and IssueWarning - Maintain an explicit call stack in cmMakefile - Include context/call-stack info in messages - Nested errors now unwind the call stack - Use new mechanism for policy warnings and errors - Improve policy error message - Include cmExecutionStatus pointer in call stack so that errors deeper in the C++ stack under a command invocation will become errors for the command
* BUG: keep CMAKE_BACKWARDS_COMP as internalKen Martin2008-03-061-0/+13
|
* BUG: make default CMAKE_BACKWARDS_COMPATIBILITY 2.5Ken Martin2008-03-061-1/+1
|
* BUG: change in handling of cmake_minimum_requiredKen Martin2008-03-061-6/+1
|
* BUG: change the handling of CMAKE_MINIMUM_REQUIRED and ↵Ken Martin2008-03-061-2/+58
| | | | BACKWARDS_COMPATIBILITY and extend the documentaiton quite a bit
* BUG: ParseFile should return false if there was a parse error.Brad King2007-11-191-0/+4
|
* COMP: Fix and/or disable warnings for Borland 5.6 build.Brad King2006-08-011-0/+4
|
* STYLE: fix line lengthKen Martin2006-05-121-2/+4
|
* STYLE: some m_ to this-> cleanupKen Martin2006-03-151-14/+14
|
* BUG: Remove some old legacy code and remove memory leakAndy Cedilnik2006-03-081-18/+2
|
* ENH: Since list file cache does not make much sense any more (because of ↵Andy Cedilnik2006-02-071-87/+8
| | | | proper list file parsing), and it actually adds unnecessary complications and make ctest scripting not work, take it out
* BUG: project command should also work with lower caseKen Martin2005-07-061-1/+1
|
* ENH: Improve handling of escaped charactersAndy Cedilnik2005-06-171-2/+2
|
* BUG: Fixed line number of end of file error message.Brad King2004-08-311-1/+3
|
* BUG#1049: Added error message when file ends in an unterminated string.Brad King2004-08-311-6/+12
|
* ENH: more uniform approach to enable language, one step closer to being able ↵Bill Hoffman2004-08-261-1/+0
| | | | to enable a language without modifing cmake source code
* ENH: Added support for special variables CMAKE_CURRENT_LIST_FILE and ↵Brad King2004-08-041-11/+37
| | | | CMAKE_CURRENT_LIST_LINE that evaluate to the file name and line number in which they appear. This implements the feature request from bug 1012.
* ENH: Using lex-based tokenizer and a simple recursive-descent parser in ↵Brad King2003-12-081-211/+116
| | | | place of the old hand-coded parser for CMake listfiles.
* ENH: Added support for # characters inside quoted arguments and for escaping ↵Brad King2003-07-091-16/+68
| | | | # in a non-quoted argument. Improved parsing speed by not compiling regular expressions on blank lines.
* ENH: Merged use of the kwsys RegularExpression class instead of ↵Brad King2003-06-231-7/+8
| | | | cmRegularExpression.
* Implement GetLineFromStream that actually works and use it instead of getlineAndy Cedilnik2003-03-271-19/+13
|
* ENH: Improved filename/line number reporting in error message. Macro ↵Brad King2002-12-121-18/+18
| | | | invocations now chain up the error message.
* BUG: Multi-line functions must also increment line number, not the pointer.Brad King2002-12-111-1/+1
|
* ENH: Moved ExpandListVariables out of individual commands. Argument ↵Brad King2002-12-111-6/+183
| | | | evaluation rules are now very consistent. Double quotes can always be used to create exactly one argument, regardless of contents inside.
* ENH: put the project command at the front of the projectBill Hoffman2002-12-021-1/+1
|
* ENH: remove cerr callsBill Hoffman2002-12-021-1/+0
|