summaryrefslogtreecommitdiffstats
path: root/Source/cmLocalUnixMakefileGenerator2.h
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2004-10-04 20:15:25 (GMT)
committerBrad King <brad.king@kitware.com>2004-10-04 20:15:25 (GMT)
commitbf46e4f4b78083799be42d47d35215a0db066d01 (patch)
tree988d4f427c9067504cffc1ddf12360e0ab20922b /Source/cmLocalUnixMakefileGenerator2.h
parent1066af45278f29e7a5f1b5ba3d7d12bce15719e4 (diff)
downloadCMake-bf46e4f4b78083799be42d47d35215a0db066d01.zip
CMake-bf46e4f4b78083799be42d47d35215a0db066d01.tar.gz
CMake-bf46e4f4b78083799be42d47d35215a0db066d01.tar.bz2
ENH: Started new makefile generator implementation. It will temporarily be called cmLocalUnixMakefileGenerator2 until it is ready to replace the original completely.
Diffstat (limited to 'Source/cmLocalUnixMakefileGenerator2.h')
-rw-r--r--Source/cmLocalUnixMakefileGenerator2.h63
1 files changed, 63 insertions, 0 deletions
diff --git a/Source/cmLocalUnixMakefileGenerator2.h b/Source/cmLocalUnixMakefileGenerator2.h
new file mode 100644
index 0000000..0fc9018
--- /dev/null
+++ b/Source/cmLocalUnixMakefileGenerator2.h
@@ -0,0 +1,63 @@
+/*=========================================================================
+
+ Program: CMake - Cross-Platform Makefile Generator
+ Module: $RCSfile$
+ Language: C++
+ Date: $Date$
+ Version: $Revision$
+
+ Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved.
+ See Copyright.txt or http://www.cmake.org/HTML/Copyright.html 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 cmLocalUnixMakefileGenerator2_h
+#define cmLocalUnixMakefileGenerator2_h
+
+#include "cmLocalUnixMakefileGenerator.h"
+
+class cmDependInformation;
+class cmMakeDepend;
+class cmTarget;
+class cmSourceFile;
+
+/** \class cmLocalUnixMakefileGenerator2
+ * \brief Write a LocalUnix makefiles.
+ *
+ * cmLocalUnixMakefileGenerator2 produces a LocalUnix makefile from its
+ * member m_Makefile.
+ */
+class cmLocalUnixMakefileGenerator2 : public cmLocalUnixMakefileGenerator
+{
+public:
+ ///! Set cache only and recurse to false by default.
+ cmLocalUnixMakefileGenerator2();
+
+ virtual ~cmLocalUnixMakefileGenerator2();
+
+ /**
+ * 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);
+protected:
+
+ void GenerateMakefile();
+ void GenerateCMakefile();
+ void GenerateTargetRuleFile(const cmTarget& target);
+ void GenerateObjectRuleFile(const cmTarget& target,
+ const cmSourceFile& source);
+ void WriteDisclaimer(std::ostream& os);
+
+ std::string GetTargetDirectory(const cmTarget& target);
+ std::string GetObjectFileName(const cmSourceFile& source);
+private:
+};
+
+#endif