1 /*=========================================================================
3 Program: Insight Segmentation & Registration Toolkit
4 Module: $RCSfile: cmLocalGenerator.h,v $
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"
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
36 virtual ~cmLocalGenerator();
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 */) {};
48 * Process the CMakeLists files for this directory to fill in the
51 virtual void Configure();
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
);
71 cmMakefile
*m_Makefile
;
72 cmGlobalGenerator
*m_GlobalGenerator
;