| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- /*=========================================================================
- 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 cmGlobalGenerator_h
- #define cmGlobalGenerator_h
- #include "cmStandardIncludes.h"
- class cmake;
- class cmMakefile;
- class cmLocalGenerator;
- /** \class cmGlobalGenerator
- * \brief Responable for overseeing the generation process for the entire tree
- *
- * Subclasses of this class generate makefiles for various
- * platforms.
- */
- class cmGlobalGenerator
- {
- public:
- ///! Free any memory allocated with the GlobalGenerator
- virtual ~cmGlobalGenerator();
-
- ///! Create a local generator appropriate to this Global Generator
- virtual cmLocalGenerator *CreateLocalGenerator();
- ///! Get the name for this generator
- virtual const char *GetName() { return "Generic"; };
-
- /**
- * Create LocalGenerators and process the CMakeLists files. This does not
- * actually produce any makefiles, DSPs, etc.
- */
- virtual void Configure();
- /**
- * Generate the all required files for building this project/tree. This
- * basically creates a series of LocalGenerators for each directory and
- * requests that they Generate.
- */
- virtual void Generate();
- /**
- * Generate the required files for building this directory. This
- * basically creates a single LocalGenerators and
- * requests that it Generate.
- */
- virtual void LocalGenerate();
- /**
- * Set/Get and Clear the enabled languages.
- */
- void SetLanguageEnabled(const char*);
- bool GetLanguageEnabled(const char*);
- void ClearEnabledLanguages();
- /**
- * Try to determine system infomation such as shared library
- * extension, pthreads, byte order etc.
- */
- virtual void EnableLanguage(const char*, cmMakefile *) {};
- /**
- * Try running cmake and building a file. This is used for dynalically
- * loaded commands, not as part of the usual build process.
- */
- virtual int TryCompile(const char *srcdir, const char *bindir,
- const char *projectName);
- ///! Set the CMake instance
- void SetCMakeInstance(cmake *cm) {
- this->m_CMakeInstance = cm; };
-
- ///! Get the CMake instance
- cmake *GetCMakeInstance() {
- return this->m_CMakeInstance; };
- protected:
- bool m_LanguagesEnabled;
- cmake *m_CMakeInstance;
- std::vector<cmLocalGenerator *> m_LocalGenerators;
- ///! used by Configure()
- void RecursiveConfigure(cmLocalGenerator *lg);
-
- private:
- std::map<cmStdString, bool> m_LanguageEnabled;
- };
- #endif
|