summaryrefslogtreecommitdiff
path: root/Source/cmMakefile.h
diff options
context:
space:
mode:
authorAndy Cedilnik <andy.cedilnik@kitware.com>2004-04-18 14:41:46 -0400
committerAndy Cedilnik <andy.cedilnik@kitware.com>2004-04-18 14:41:46 -0400
commit55a71ba572c54dbb3485a76e9615c1c8bf688fd4 (patch)
treeac692b4ef198284cf7c0e9b65ab854f93e7f865a /Source/cmMakefile.h
parentaf61b685839fae6af72ba4c4d42ebf39a7d1a324 (diff)
downloadcmake-55a71ba572c54dbb3485a76e9615c1c8bf688fd4.tar.gz
ENH: Add check for infinite loops. Make sure that files written using WRITE_FILE and FILE WRITE are not used as input files. Fixes Bug #678 - WRITE_FILE and FILE(WRITE...) lead to infinite loops
Diffstat (limited to 'Source/cmMakefile.h')
-rw-r--r--Source/cmMakefile.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/Source/cmMakefile.h b/Source/cmMakefile.h
index 092d742450..194729e336 100644
--- a/Source/cmMakefile.h
+++ b/Source/cmMakefile.h
@@ -82,6 +82,18 @@ public:
void RemoveFunctionBlocker(cmFunctionBlocker *fb)
{ m_FunctionBlockers.remove(fb);}
void RemoveFunctionBlocker(const cmListFileFunction& lff);
+
+ /**
+ * Add file to the written file list. These file should not be in the list
+ * of dependencies because they cause infinite loops.
+ */
+ void AddWrittenFile(const char* file);
+ bool HasWrittenFile(const char* file);
+
+ /**
+ * Check if there are any infinite loops
+ */
+ bool CheckInfiniteLoops();
/**
* Try running cmake and building a file. This is used for dynalically