ENH: mark some vars as advanced (and resort the list)
[cmake.git] / Source / cmLocalGenerator.h
blob942dfa05524cdf3d02d6967bdd1ef0d63a78ca1c
1 /*=========================================================================
3 Program: Insight Segmentation & Registration Toolkit
4 Module: $RCSfile: cmLocalGenerator.h,v $
5 Language: C++
6 Date: $Date: 2002-09-15 12:53:54 $
7 Version: $Revision: 1.5 $
9 Copyright (c) 2002 Insight Consortium. All rights reserved.
10 See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm 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 cmLocalGenerator_h
18 #define cmLocalGenerator_h
20 #include "cmStandardIncludes.h"
22 class cmMakefile;
23 class cmGlobalGenerator;
25 /** \class cmLocalGenerator
26 * \brief Create required build files for a directory.
28 * Subclasses of this abstract class generate makefiles, DSP, etc for various
29 * platforms. This class should never be constructued directly. A
30 * GlobalGenerator will create it and invoke the appropriate commands on it.
32 class cmLocalGenerator
34 public:
35 cmLocalGenerator();
36 virtual ~cmLocalGenerator();
38 /**
39 * Generate the makefile for this directory. fromTheTop indicates if this
40 * is being invoked as part of a global Generate or specific to this
41 * directory. The difference is that when done from the Top we might skip
42 * some steps to save time, such as dependency generation for the
43 * makefiles. This is done by a direct invocation from make.
45 virtual void Generate(bool /* fromTheTop */) {};
47 /**
48 * Process the CMakeLists files for this directory to fill in the
49 * m_Makefile ivar
51 virtual void Configure();
53 /**
54 * Perform any final calculations prior to generation
56 virtual void ConfigureFinalPass();
58 ///! Get the makefile for this generator
59 cmMakefile *GetMakefile() {
60 return this->m_Makefile; };
62 ///! Get the GlobalGenerator this is associated with
63 cmGlobalGenerator *GetGlobalGenerator() {
64 return m_GlobalGenerator; };
66 ///! Set the Global Generator, done on creation by the GlobalGenerator
67 void SetGlobalGenerator(cmGlobalGenerator *gg);
69 protected:
70 bool m_FromTheTop;
71 cmMakefile *m_Makefile;
72 cmGlobalGenerator *m_GlobalGenerator;
75 #endif