diff --git a/Source/cmAbstractFilesRule.h b/Source/cmAbstractFilesRule.h index 9d2237234..717dd6ddf 100644 --- a/Source/cmAbstractFilesRule.h +++ b/Source/cmAbstractFilesRule.h @@ -1,10 +1,24 @@ +/*========================================================================= + + Program: Insight Segmentation & Registration Toolkit + Module: $RCSfile$ + Language: C++ + Date: $Date$ + Version: $Revision$ + + + Copyright (c) 2000 National Library of Medicine + All rights reserved. + + See COPYRIGHT.txt for copyright details. + +=========================================================================*/ #ifndef cmAbstractFilesRule_h #define cmAbstractFilesRule_h #include "cmStandardIncludes.h" #include "cmRuleMaker.h" - class cmAbstractFilesRule : public cmRuleMaker { public: @@ -12,20 +26,36 @@ public: { return new cmAbstractFilesRule; } - // This is called when the rule is firt encountered in - // the input file + + /** + * This is called when the rule is first encountered in + * the input file. + */ virtual bool Invoke(std::vector& args); + + /** + * This is called at the end after all the information + * specified by the rules is accumulated. + */ virtual void FinalPass() { } - // This is the name used in the input file. + /** + * The name of the rule as specified in CMakeList.txt. + */ virtual const char* GetName() { return "ABSTRACT_FILES";} - virtual const char* TerseDocumentaion() + + /** + * Succinct documentation. + */ + virtual const char* TerseDocumentation() { - return "A list of abstract classes, useful for wrappers."; + return "A list of abstract classes, useful for wrappers."; } - // Return full documentation for the rule - virtual const char* FullDocumentaion() + /** + * Longer documentation. + */ + virtual const char* FullDocumentation() { return "ABSTRACT_FILES(file1 file2 ..)"; diff --git a/Source/cmAddTargetRule.h b/Source/cmAddTargetRule.h index 232e0f716..afc595fd4 100644 --- a/Source/cmAddTargetRule.h +++ b/Source/cmAddTargetRule.h @@ -1,37 +1,76 @@ +/*========================================================================= + + Program: Insight Segmentation & Registration Toolkit + Module: $RCSfile$ + Language: C++ + Date: $Date$ + Version: $Revision$ + + + Copyright (c) 2000 National Library of Medicine + All rights reserved. + + See COPYRIGHT.txt for copyright details. + +=========================================================================*/ #ifndef cmAddTargetRule_h #define cmAddTargetRule_h #include "cmStandardIncludes.h" #include "cmRuleMaker.h" - +/** \class cmAddTargetRule + * \brief Rule that adds a target to the build system. + * + * cmAddTargetRule adds an extra target to the build system. + * This is useful when you would like to add special + * targets like "install,", "clean," and so on. + */ class cmAddTargetRule : public cmRuleMaker { public: + /** + * This is a virtual constructor for the rule. + */ virtual cmRuleMaker* Clone() { - return new cmAddTargetRule; + return new cmAddTargetRule; } - // This is called when the rule is firt encountered in - // the input file + + /** + * This is called when the rule is first encountered in + * the CMakeLists.txt file. + */ virtual bool Invoke(std::vector& args); - virtual void FinalPass() { } - // This is the name used in the input file. - virtual const char* GetName() { return "ADD_TARGET";} - virtual const char* TerseDocumentaion() + /** + * This is called at the end after all the information + * specified by the rules is accumulated. + */ + virtual void FinalPass() {} + + /** + * The name of the rule as specified in CMakeList.txt. + */ + virtual const char* GetName() + {return "ADD_TARGET";} + + /** + * Succinct documentation. + */ + virtual const char* TerseDocumentation() { - return "Add an extra target to the build system."; + return "Add an extra target to the build system."; } - // Return full documentation for the rule - virtual const char* FullDocumentaion() + /** + * More documentation. + */ + virtual const char* FullDocumentation() { - return - "ADD_TARGET(Name \"command to run\");"; + return + "ADD_TARGET(Name \"command to run\");"; } }; - - #endif diff --git a/Source/cmAuxSourceDirectoryRule.h b/Source/cmAuxSourceDirectoryRule.h index ab97e9330..24838778e 100644 --- a/Source/cmAuxSourceDirectoryRule.h +++ b/Source/cmAuxSourceDirectoryRule.h @@ -19,14 +19,14 @@ public: // This is the name used in the input file. virtual const char* GetName() { return "AUX_SOURCE_DIRECTORY";} - virtual const char* TerseDocumentaion() + virtual const char* TerseDocumentation() { return "Add all the source files found in the specified directory to\n" " the build."; } // Return full documentation for the rule - virtual const char* FullDocumentaion() + virtual const char* FullDocumentation() { return "AUX_SOURCE_DIRECTORY(dir)"; diff --git a/Source/cmDSPMakefile.h b/Source/cmDSPMakefile.h index 6021842b7..7c61316d8 100644 --- a/Source/cmDSPMakefile.h +++ b/Source/cmDSPMakefile.h @@ -13,33 +13,47 @@ See COPYRIGHT.txt for copyright details. =========================================================================*/ -/** - * cmDSPMakefile generate a microsoft DSP project file. - * see the *.dsptemplate files for information on the templates - * used for making the project files. - */ #ifndef cmDSPMakefile_h #define cmDSPMakefile_h + #include "cmStandardIncludes.h" #include "cmMakefile.h" +/** \class cmDSPMakefile + * \brief Generate a Microsoft DSP project file. + * + * cmDSPMakefile generates a Microsoft DSP project file. + * See the *.dsptemplate files for information on the templates + * used for making the project files. + */ class cmDSPMakefile { public: cmDSPMakefile(cmMakefile*); ~cmDSPMakefile(); void OutputDSPFile(); - enum BuildType { STATIC_LIBRARY, DLL, EXECUTABLE }; - void SetBuildType(BuildType ); - // return array of created DSP names - // Each executable must have its own dsp + enum BuildType {STATIC_LIBRARY, DLL, EXECUTABLE}; + + /** + * Specify the type of the build: static, dll, or executable. + */ + void SetBuildType(BuildType); + + /** + * Return array of created DSP names in a STL vector. + * Each executable must have its own dsp. + */ std::vector GetCreatedProjectNames() { - return m_CreatedProjectNames; + return m_CreatedProjectNames; } + + /** + * Return the makefile. + */ cmMakefile* GetMakefile() { - return m_Makefile; + return m_Makefile; } private: @@ -63,7 +77,7 @@ private: const char* source, const char* result, const char* command); -private: + std::string m_IncludeOptions; std::string m_DebugLibraryOptions; std::string m_ReleaseLibraryOptions; diff --git a/Source/cmDSPWriter.h b/Source/cmDSPWriter.h index 6021842b7..7c61316d8 100644 --- a/Source/cmDSPWriter.h +++ b/Source/cmDSPWriter.h @@ -13,33 +13,47 @@ See COPYRIGHT.txt for copyright details. =========================================================================*/ -/** - * cmDSPMakefile generate a microsoft DSP project file. - * see the *.dsptemplate files for information on the templates - * used for making the project files. - */ #ifndef cmDSPMakefile_h #define cmDSPMakefile_h + #include "cmStandardIncludes.h" #include "cmMakefile.h" +/** \class cmDSPMakefile + * \brief Generate a Microsoft DSP project file. + * + * cmDSPMakefile generates a Microsoft DSP project file. + * See the *.dsptemplate files for information on the templates + * used for making the project files. + */ class cmDSPMakefile { public: cmDSPMakefile(cmMakefile*); ~cmDSPMakefile(); void OutputDSPFile(); - enum BuildType { STATIC_LIBRARY, DLL, EXECUTABLE }; - void SetBuildType(BuildType ); - // return array of created DSP names - // Each executable must have its own dsp + enum BuildType {STATIC_LIBRARY, DLL, EXECUTABLE}; + + /** + * Specify the type of the build: static, dll, or executable. + */ + void SetBuildType(BuildType); + + /** + * Return array of created DSP names in a STL vector. + * Each executable must have its own dsp. + */ std::vector GetCreatedProjectNames() { - return m_CreatedProjectNames; + return m_CreatedProjectNames; } + + /** + * Return the makefile. + */ cmMakefile* GetMakefile() { - return m_Makefile; + return m_Makefile; } private: @@ -63,7 +77,7 @@ private: const char* source, const char* result, const char* command); -private: + std::string m_IncludeOptions; std::string m_DebugLibraryOptions; std::string m_ReleaseLibraryOptions; diff --git a/Source/cmExecutablesRule.h b/Source/cmExecutablesRule.h index 88219f12b..eb61c1e14 100644 --- a/Source/cmExecutablesRule.h +++ b/Source/cmExecutablesRule.h @@ -19,13 +19,13 @@ public: // This is the name used in the input file. virtual const char* GetName() { return "EXECUTABLES";} - virtual const char* TerseDocumentaion() + virtual const char* TerseDocumentation() { return "Add a list of executables files."; } // Return full documentation for the rule - virtual const char* FullDocumentaion() + virtual const char* FullDocumentation() { return "EXECUTABLES(file1 file2 ...)"; diff --git a/Source/cmFindIncludeRule.h b/Source/cmFindIncludeRule.h index 113c3e142..654c26a8b 100644 --- a/Source/cmFindIncludeRule.h +++ b/Source/cmFindIncludeRule.h @@ -20,13 +20,13 @@ public: // This is the name used in the input file. virtual const char* GetName() { return "FIND_INCLUDE";} - virtual const char* TerseDocumentaion() + virtual const char* TerseDocumentation() { return "Find an include path."; } // Return full documentation for the rule - virtual const char* FullDocumentaion() + virtual const char* FullDocumentation() { return "FIND_INCLUDE(DEFINE try1 try2 ...);"; diff --git a/Source/cmFindLibraryRule.h b/Source/cmFindLibraryRule.h index 2707ff8f5..4ab0b07a7 100644 --- a/Source/cmFindLibraryRule.h +++ b/Source/cmFindLibraryRule.h @@ -20,13 +20,13 @@ public: // This is the name used in the input file. virtual const char* GetName() { return "FIND_LIBRARY";} - virtual const char* TerseDocumentaion() + virtual const char* TerseDocumentation() { return "Set a name for the entire project. One argument."; } // Return full documentation for the rule - virtual const char* FullDocumentaion() + virtual const char* FullDocumentation() { return "FIND_LIBRARY(DEFINE try1 try2);"; diff --git a/Source/cmFindProgramRule.h b/Source/cmFindProgramRule.h index c7d8c6fd5..8907c8670 100644 --- a/Source/cmFindProgramRule.h +++ b/Source/cmFindProgramRule.h @@ -20,13 +20,13 @@ public: // This is the name used in the input file. virtual const char* GetName() { return "FIND_PROGRARM";} - virtual const char* TerseDocumentaion() + virtual const char* TerseDocumentation() { return "not implemented."; } // Return full documentation for the rule - virtual const char* FullDocumentaion() + virtual const char* FullDocumentation() { return "not implemented.\n" diff --git a/Source/cmIncludeDirectoryRule.h b/Source/cmIncludeDirectoryRule.h index 0ec61c2b5..ec59614b7 100644 --- a/Source/cmIncludeDirectoryRule.h +++ b/Source/cmIncludeDirectoryRule.h @@ -20,13 +20,13 @@ public: // This is the name used in the input file. virtual const char* GetName() { return "INCLUDE_DIRECTORIES";} - virtual const char* TerseDocumentaion() + virtual const char* TerseDocumentation() { return "Add include directories to the build."; } // Return full documentation for the rule - virtual const char* FullDocumentaion() + virtual const char* FullDocumentation() { return "INCLUDE_DIRECTORIES(dir1 dir2 ...).\n"; diff --git a/Source/cmLibraryRule.h b/Source/cmLibraryRule.h index 51262e906..61db5e72f 100644 --- a/Source/cmLibraryRule.h +++ b/Source/cmLibraryRule.h @@ -19,13 +19,13 @@ public: // This is the name used in the input file. virtual const char* GetName() { return "LIBRARY";} - virtual const char* TerseDocumentaion() + virtual const char* TerseDocumentation() { return "Set a name for the Library."; } // Return full documentation for the rule - virtual const char* FullDocumentaion() + virtual const char* FullDocumentation() { return "LIBRARY(libraryname);"; diff --git a/Source/cmLinkDirectoriesRule.h b/Source/cmLinkDirectoriesRule.h index e449c2946..87df9d534 100644 --- a/Source/cmLinkDirectoriesRule.h +++ b/Source/cmLinkDirectoriesRule.h @@ -21,13 +21,13 @@ public: // This is the name used in the input file. virtual const char* GetName() { return "LINK_DIRECTORIES";} - virtual const char* TerseDocumentaion() + virtual const char* TerseDocumentation() { return "Specify link directories."; } // Return full documentation for the rule - virtual const char* FullDocumentaion() + virtual const char* FullDocumentation() { return "Specify the paths to the libraries that will be linked in.\n" diff --git a/Source/cmLinkLibrariesRule.h b/Source/cmLinkLibrariesRule.h index 79883b1ee..c98e3fbea 100644 --- a/Source/cmLinkLibrariesRule.h +++ b/Source/cmLinkLibrariesRule.h @@ -21,7 +21,7 @@ public: // This is the name used in the input file. virtual const char* GetName() { return "LINK_LIBRARIES";} - virtual const char* TerseDocumentaion() + virtual const char* TerseDocumentation() { return "Specify a list of libraries to be linked into executables or \n" @@ -29,7 +29,7 @@ public: } // Return full documentation for the rule - virtual const char* FullDocumentaion() + virtual const char* FullDocumentation() { return "Specify a list of libraries to be linked into executables or \n" diff --git a/Source/cmProjectRule.h b/Source/cmProjectRule.h index 2fe6df05b..22ebf614a 100644 --- a/Source/cmProjectRule.h +++ b/Source/cmProjectRule.h @@ -19,13 +19,13 @@ public: // This is the name used in the input file. virtual const char* GetName() { return "PROJECT";} - virtual const char* TerseDocumentaion() + virtual const char* TerseDocumentation() { return "Set a name for the entire project. One argument."; } // Return full documentation for the rule - virtual const char* FullDocumentaion() + virtual const char* FullDocumentation() { return "Set the name for the entire project. This takes one argument.\n" diff --git a/Source/cmRuleMaker.h b/Source/cmRuleMaker.h index e013ea5dc..818da4c7e 100644 --- a/Source/cmRuleMaker.h +++ b/Source/cmRuleMaker.h @@ -1,52 +1,129 @@ +/*========================================================================= + + Program: Insight Segmentation & Registration Toolkit + Module: $RCSfile$ + Language: C++ + Date: $Date$ + Version: $Revision$ + + + Copyright (c) 2000 National Library of Medicine + All rights reserved. + + See COPYRIGHT.txt for copyright details. + +=========================================================================*/ #ifndef cmRuleMaker_h #define cmRuleMaker_h + #include "cmStandardIncludes.h" #include "cmMakefile.h" +/** \class cmRuleMaker + * \brief Superclass for all rules in CMake. + * + * cmRuleMaker is the base class for all rules in CMake. + * cmRuleMaker defines the API for rules with such features + * as enable/disable, inheritance, documentation, and construction. + */ class cmRuleMaker { public: - cmRuleMaker() { m_Makefile = 0; m_Enabled = true; } - void SetMakefile(cmMakefile*m) {m_Makefile = m; } - // This is called when the rule is firt encountered in - // the input file + /** + * Construct the rule enabled with no makefile. + * the input file. + */ + cmRuleMaker() + {m_Makefile = 0; m_Enabled = true;} + + /** + * Specify the makefile. + */ + void SetMakefile(cmMakefile*m) + {m_Makefile = m; } + + /** + * This is called when the rule is first encountered in + * the CMakeLists.txt file. + */ virtual bool Invoke(std::vector& args) = 0; - // This is called after the entire file has been parsed. + + /** + * This is called at the end after all the information + * specified by the rules is accumulated. + */ virtual void FinalPass() = 0; - // This is called to let the rule check the cache - virtual void LoadCache() { } + + /** + * This is called to let the rule check the cache. + */ + virtual void LoadCache() {} + /** + * This is a virtual constructor for the rule. + */ virtual cmRuleMaker* Clone() = 0; - // This determines if the rule gets passed down - // to sub directory makefiles + /** + * This determines if the rule gets propagated down + * to makefiles located in subdirectories. + */ virtual bool IsInherited() { - return false; + return false; } - // This is the name used in the input file. + + /** + * The name of the rule as specified in CMakeList.txt. + */ virtual const char* GetName() = 0; - // Return the terse documentaion for the rule - virtual const char* TerseDocumentaion() = 0; - // Return full documentation for the rule - virtual const char* FullDocumentaion() = 0; - // enable or disable this rule - bool GetEnabled() { return m_Enabled; } - void SetEnableOn() { m_Enabled = true; } - void SetEnableOff() { m_Enabled = false; } - const char* GetError() { return m_Error.c_str();} + + /** + * Succinct documentation. + */ + virtual const char* TerseDocumentation() = 0; + + /** + * More documentation. + */ + virtual const char* FullDocumentation() = 0; + + /** + * Enable the rule. + */ + void EnabledOn() + {m_Enabled = true;} + + /** + * Disable the rule. + */ + void EnabledOff() + {m_Enabled = false;} + + /** + * Query whether the rule is enabled. + */ + bool GetEnabled() + {return m_Enabled;} + + /** + * Return the last error string. + */ + const char* GetError() + {return m_Error.c_str();} + protected: void SetError(const char* e) { - m_Error = this->GetName(); - m_Error += " "; - m_Error += e; + m_Error = this->GetName(); + m_Error += " "; + m_Error += e; } cmMakefile* m_Makefile; + private: bool m_Enabled; std::string m_Error; }; - #endif diff --git a/Source/cmSourceFilesRequireRule.h b/Source/cmSourceFilesRequireRule.h index f704c0df9..4a7d2c0d1 100644 --- a/Source/cmSourceFilesRequireRule.h +++ b/Source/cmSourceFilesRequireRule.h @@ -19,13 +19,13 @@ public: // This is the name used in the input file. virtual const char* GetName() { return "SOURCE_FILES_REQUIRE";} - virtual const char* TerseDocumentaion() + virtual const char* TerseDocumentation() { return "Add a list of source files."; } // Return full documentation for the rule - virtual const char* FullDocumentaion() + virtual const char* FullDocumentation() { return "SOURCE_FILES(file1 file2 ...)"; diff --git a/Source/cmSourceFilesRule.h b/Source/cmSourceFilesRule.h index 216d69790..7e4151a01 100644 --- a/Source/cmSourceFilesRule.h +++ b/Source/cmSourceFilesRule.h @@ -19,13 +19,13 @@ public: // This is the name used in the input file. virtual const char* GetName() { return "SOURCE_FILES";} - virtual const char* TerseDocumentaion() + virtual const char* TerseDocumentation() { return "Add a list of source files."; } // Return full documentation for the rule - virtual const char* FullDocumentaion() + virtual const char* FullDocumentation() { return "SOURCE_FILES(file1 file2 ...)"; diff --git a/Source/cmSubdirRule.h b/Source/cmSubdirRule.h index cc41bb6a6..4a6b1665a 100644 --- a/Source/cmSubdirRule.h +++ b/Source/cmSubdirRule.h @@ -19,13 +19,13 @@ public: // This is the name used in the input file. virtual const char* GetName() { return "SUBDIRS";} - virtual const char* TerseDocumentaion() + virtual const char* TerseDocumentation() { return "Add a list of subdirectories to the build."; } // Return full documentation for the rule - virtual const char* FullDocumentaion() + virtual const char* FullDocumentation() { return "Add a list of subdirectories to the build.\n" diff --git a/Source/cmTestsRule.h b/Source/cmTestsRule.h index 4bcbd4a1d..b0a7b0921 100644 --- a/Source/cmTestsRule.h +++ b/Source/cmTestsRule.h @@ -19,13 +19,13 @@ public: // This is the name used in the input file. virtual const char* GetName() { return "TESTS";} - virtual const char* TerseDocumentaion() + virtual const char* TerseDocumentation() { return "Add a list of executables files that are run as tests."; } // Return full documentation for the rule - virtual const char* FullDocumentaion() + virtual const char* FullDocumentation() { return "TESTS(file1 file2 ...)"; diff --git a/Source/cmUnixDefinesRule.cxx b/Source/cmUnixDefinesRule.cxx index 9922d4df3..0a3aed308 100644 --- a/Source/cmUnixDefinesRule.cxx +++ b/Source/cmUnixDefinesRule.cxx @@ -3,7 +3,7 @@ cmUnixDefinesRule::cmUnixDefinesRule() { #if defined(_WIN32) && !defined(__CYGWIN__) - this->SetEnableOff(); + this->EnabledOff(); #endif } diff --git a/Source/cmUnixDefinesRule.h b/Source/cmUnixDefinesRule.h index c799c4eab..0c216b0e6 100644 --- a/Source/cmUnixDefinesRule.h +++ b/Source/cmUnixDefinesRule.h @@ -21,13 +21,13 @@ public: // This is the name used in the input file. virtual const char* GetName() { return "UNIX_DEFINES";} - virtual const char* TerseDocumentaion() + virtual const char* TerseDocumentation() { return "Add -D flags to the command line for unix only."; } // Return full documentation for the rule - virtual const char* FullDocumentaion() + virtual const char* FullDocumentation() { return "Add -D flags to the command line for unix only.\n" diff --git a/Source/cmUnixLibrariesRule.cxx b/Source/cmUnixLibrariesRule.cxx index 84e8ecce9..414d77771 100644 --- a/Source/cmUnixLibrariesRule.cxx +++ b/Source/cmUnixLibrariesRule.cxx @@ -3,7 +3,7 @@ cmUnixLibrariesRule::cmUnixLibrariesRule() { #if defined(_WIN32) && !defined(__CYGWIN__) - this->SetEnableOff(); + this->EnabledOff(); #endif } diff --git a/Source/cmUnixLibrariesRule.h b/Source/cmUnixLibrariesRule.h index f93672829..8b8d5e0fa 100644 --- a/Source/cmUnixLibrariesRule.h +++ b/Source/cmUnixLibrariesRule.h @@ -21,13 +21,13 @@ public: // This is the name used in the input file. virtual const char* GetName() { return "UNIX_LIBRARIES";} - virtual const char* TerseDocumentaion() + virtual const char* TerseDocumentation() { return "Add libraries that are only used for unix programs."; } // Return full documentation for the rule - virtual const char* FullDocumentaion() + virtual const char* FullDocumentation() { return "UNIX_LIBRARIES(library -lm ...);"; diff --git a/Source/cmWin32DefinesRule.h b/Source/cmWin32DefinesRule.h index 08518b9b8..5f81ee8c8 100644 --- a/Source/cmWin32DefinesRule.h +++ b/Source/cmWin32DefinesRule.h @@ -20,13 +20,13 @@ public: virtual bool IsInherited() { return true; } // This is the name used in the input file. virtual const char* GetName() { return "WIN32_DEFINES";} - virtual const char* TerseDocumentaion() + virtual const char* TerseDocumentation() { return "Add -D define flags to command line for win32 environments."; } // Return full documentation for the rule - virtual const char* FullDocumentaion() + virtual const char* FullDocumentation() { return "Add -D define flags to command line for win32 environments.\n" diff --git a/Source/cmWin32LibrariesRule.h b/Source/cmWin32LibrariesRule.h index 93277a28c..928b5f056 100644 --- a/Source/cmWin32LibrariesRule.h +++ b/Source/cmWin32LibrariesRule.h @@ -21,13 +21,13 @@ public: // This is the name used in the input file. virtual const char* GetName() { return "WIN32_LIBRARIES";} - virtual const char* TerseDocumentaion() + virtual const char* TerseDocumentation() { return "Set a name for the library to be built. One argument."; } // Return full documentation for the rule - virtual const char* FullDocumentaion() + virtual const char* FullDocumentation() { return "Set the name for the library in this makefile. \n"