summaryrefslogtreecommitdiff
path: root/Source/cmLocalGenerator.h
diff options
context:
space:
mode:
authorKen Martin <ken.martin@kitware.com>2002-08-30 16:00:35 -0400
committerKen Martin <ken.martin@kitware.com>2002-08-30 16:00:35 -0400
commit3ffc4b2ee1cabf1815c6b615f43d92aefa9c2597 (patch)
tree03afb8b53f0c0c7aeb4822e296f611eaf2713563 /Source/cmLocalGenerator.h
parent31f80f19aec938a3109e6d8c17172a3538d0477f (diff)
downloadcmake-3ffc4b2ee1cabf1815c6b615f43d92aefa9c2597.tar.gz
in progress checkin
Diffstat (limited to 'Source/cmLocalGenerator.h')
-rw-r--r--Source/cmLocalGenerator.h71
1 files changed, 71 insertions, 0 deletions
diff --git a/Source/cmLocalGenerator.h b/Source/cmLocalGenerator.h
new file mode 100644
index 0000000000..24bcfa5f7b
--- /dev/null
+++ b/Source/cmLocalGenerator.h
@@ -0,0 +1,71 @@
+/*=========================================================================
+
+ Program: Insight Segmentation & Registration Toolkit
+ Module: $RCSfile$
+ Language: C++
+ Date: $Date$
+ Version: $Revision$
+
+ Copyright (c) 2002 Insight Consortium. All rights reserved.
+ See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.
+
+ This software is distributed WITHOUT ANY WARRANTY; without even
+ the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ PURPOSE. See the above copyright notices for more information.
+
+=========================================================================*/
+#ifndef cmLocalGenerator_h
+#define cmLocalGenerator_h
+
+#include "cmStandardIncludes.h"
+
+class cmMakefile;
+class cmGlobalGenerator;
+
+/** \class cmLocalGenerator
+ * \brief Create required build files for a directory.
+ *
+ * Subclasses of this abstract class generate makefiles, DSP, etc for various
+ * platforms. This class should never be constructued directly. A
+ * GlobalGenerator will create it and invoke the appropriate commands on it.
+ */
+class cmLocalGenerator
+{
+public:
+ cmLocalGenerator();
+ ~cmLocalGenerator();
+
+ /**
+ * Generate the makefile for this directory. fromTheTop indicates if this
+ * is being invoked as part of a global Generate or specific to this
+ * directory. The difference is that when done from the Top we might skip
+ * some steps to save time, such as dependency generation for the
+ * makefiles. This is done by a direct invocation from make.
+ */
+ virtual void Generate(bool fromTheTop);
+
+ /**
+ * Process the CMakeLists files for this directory to fill in the
+ * m_Makefile ivar
+ */
+ virtual void Configure();
+
+ ///! Get the makefile for this generator
+ cmMakefile *GetMakefile() {
+ return this->m_Makefile; };
+
+ ///! Get the GlobalGenerator this is associated with
+ cmGlobalGenerator *GetGlobalGenerator() {
+ return m_GlobalGenerator; };
+
+ ///! Set the Global Generator, done on creation by the GlobalGenerator
+ void SetGlobalGenerator(cmGlobalGenerator *gg) {
+ m_GlobalGenerator = gg; };
+
+protected:
+ bool m_FromTheTop;
+ cmMakefile *m_Makefile;
+ cmGlobalGenerator *m_GlobalGenerator;
+};
+
+#endif