1 /*=========================================================================
3 Program: CMake - Cross-Platform Makefile Generator
4 Module: $RCSfile: cmListFileCache.h,v $
6 Date: $Date: 2008-10-11 16:02:50 $
7 Version: $Revision: 1.22 $
9 Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved.
10 See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details.
12 This software is distributed WITHOUT ANY WARRANTY; without even
13 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
14 PURPOSE. See the above copyright notices for more information.
16 =========================================================================*/
17 #ifndef cmListFileCache_h
18 #define cmListFileCache_h
20 #include "cmStandardIncludes.h"
22 /** \class cmListFileCache
23 * \brief A class to cache list file contents.
25 * cmListFileCache is a class used to cache the contents of parsed
31 struct cmListFileArgument
33 cmListFileArgument(): Value(), Quoted(false), FilePath(0), Line(0) {}
34 cmListFileArgument(const cmListFileArgument
& r
):
35 Value(r
.Value
), Quoted(r
.Quoted
), FilePath(r
.FilePath
), Line(r
.Line
) {}
36 cmListFileArgument(const std::string
& v
, bool q
, const char* file
,
37 long line
): Value(v
), Quoted(q
),
38 FilePath(file
), Line(line
) {}
39 bool operator == (const cmListFileArgument
& r
) const
41 return (this->Value
== r
.Value
) && (this->Quoted
== r
.Quoted
);
43 bool operator != (const cmListFileArgument
& r
) const
53 struct cmListFileContext
58 cmListFileContext(): Name(), FilePath(), Line(0) {}
61 std::ostream
& operator<<(std::ostream
&, cmListFileContext
const&);
63 struct cmListFileFunction
: public cmListFileContext
65 std::vector
<cmListFileArgument
> Arguments
;
68 class cmListFileBacktrace
: public std::vector
<cmListFileContext
> {};
76 bool ParseFile(const char* path
,
80 long int ModifiedTime
;
81 std::vector
<cmListFileFunction
> Functions
;