Commit Graph

23 Commits

Author SHA1 Message Date
Brad King 5f4686920d BUG: Fix CMAKE_CURRENT_LIST_FILE in macros
The value of CMAKE_CURRENT_LIST_FILE is supposed to be the list file
currently being executed.  Before macros were introduced this was always
the context of the argument referencing the variable.

Our original implementation of macros replaced the context of command
arguments inside the macro with that of the arguments of the calling
context.  This worked recursively, but only worked when macros had at
least one argument.  Furthermore, it caused parsing errors of the
arguments to report the wrong location (calling context instead of line
with error).

The commit "Improve context for errors in macros" fixed the latter bug
by keeping the lexical context of command arguments in macros.  It broke
evaluation of CMAKE_CURRENT_LIST_FILE because the calling context was no
longer preserved in the argument referencing the variable.  However,
since our list file processing now maintains the proper value of
CMAKE_CURRENT_LIST_FILE with dynamic scope we no longer need the context
of the argument and can just evaluate the variable normally.
2009-03-25 10:37:04 -04:00
Brad King f8bc0492e1 ENH: Create $CACHE{VAR} syntax
This syntax allows reading of cache entries even when variables of the
same name have been defined in the local scope.  See issue #7715.
2008-09-25 10:21:15 -04:00
Brad King d524f3675e ENH: Improve argument parsing error messages
Previously error messages produced by parsing of command argument
variable references, such as bad $KEY{VAR} syntax or a bad escape
sequence, did not provide good context information.  Errors parsing
arguments inside macro invocations gave no context at all.  Furthermore,
some errors such as a missing close curly "${VAR" would be reported but
build files would still be generated.

These changes teach CMake to report errors with good context information
for all command argument parsing problems.  Policy CMP0010 is introduced
so that existing projects that built despite such errors will continue
to work.
2008-09-24 08:51:19 -04:00
Brad King db0f26e852 BUG: Fixed @ONLY configuration to not try to parse ${} syntax at all. This fixes the original fix to bug#4393 and adds a test. 2007-06-06 16:20:02 -04:00
Brad King e40c51dddf BUG: Fixed cmCommandArgumentLexer no-escape mode to not match backslash-escape sequences as lexical tokens at all. Needed to configure files with backslashes preceding an @VAR@ replacement. This fixes bug#5130. 2007-06-04 15:57:33 -04:00
Bill Hoffman 0e95a190bc ENH: add atonly support to cmCommandArgumentParserHelper.cxx and remove old non-yacc parser code from cmMakefile.cxx 2007-02-09 13:44:37 -05:00
Brad King 523075ded5 BUG: Do not replace @VAR@ syntax in list files. This addresses bug #2722. 2006-10-04 14:37:42 -04:00
Brad King e5549cff25 BUG: One should be able to escape the @ symbol. 2006-09-27 16:14:16 -04:00
Andy Cedilnik a9c0929d39 COMP: Handle both ansi and non-ansi C 2006-07-26 11:46:22 -04:00
Ken Martin d77fbb9640 STYLE: fix line length 2006-05-10 14:15:15 -04:00
Bill Hoffman 51a84aaa57 ENH: handle empty variables 2006-05-05 21:45:26 -04:00
Bill Hoffman 5a2668b326 ENH: add support for win64 for visual studio 2005 ide and nmake, also fix warnings produced by building for win64 2006-03-30 13:49:56 -05:00
Ken Martin 3d96e52261 STYLE: some m_ to this-> cleanup 2006-03-15 11:02:08 -05:00
Bill Hoffman 29a40d3869 ENH: remove UMR 2005-09-08 15:26:36 -04:00
Andy Cedilnik 01a78e617a ENH: Remove stray abort 2005-06-21 16:44:46 -04:00
Andy Cedilnik 9e9b6a8354 BUG: Fix escaping to make OSX work again 2005-06-21 11:01:24 -04:00
Andy Cedilnik 1bbccc5bef ENH: Improve handling of escaped characters 2005-06-17 15:50:08 -04:00
Andy Cedilnik d797ba2c7e ENH: More cleanups 2005-06-14 15:49:30 -04:00
Andy Cedilnik 6037d1ae66 ENH: Handle non-existing variables 2005-06-13 14:29:45 -04:00
Andy Cedilnik 043ddabc91 ENH: More optimization 2005-06-13 10:11:44 -04:00
Andy Cedilnik d36f3c5543 ENH: Handle errors and optimize a bit 2005-06-13 10:00:59 -04:00
Andy Cedilnik bbf1c3a0e8 ENH: Handle more cases 2005-06-08 14:18:31 -04:00
Andy Cedilnik 2f42e93427 ENH: Initial import (not working yet) 2005-06-08 10:41:05 -04:00