Skip to content
  • Brad King's avatar
    BUG: Fix CMAKE_CURRENT_LIST_FILE in macros · 5f468692
    Brad King authored
    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.
    5f468692