Merge topic 'doxygen-fixes'

09ff226 Merge branch 'add-const-qualifiers' into doxygen-fixes
31ab25c doxygen: MathCommand is not about string operators
486033a doxygen: review cmake.h
937bb4b doxygen: remove a few comments
4774590 doxygen: fix some comments in cmPolicies.h
4a48be3 doxygen: Small fixes in cmake.h apidocs
1e5b971 doxygen: Use proper syntax to document enum
54ab11c doxygen: Improve API docs of GetRealDependency
80072d4 doxygen: cmPropertyDefinition
This commit is contained in:
David Cole 2012-03-02 11:50:26 -05:00 committed by CMake Topic Stage
commit 5d9c535f31
11 changed files with 120 additions and 146 deletions

View File

@ -16,11 +16,6 @@
#include "cmFunctionBlocker.h" #include "cmFunctionBlocker.h"
#include "cmListFileCache.h" #include "cmListFileCache.h"
/** \class cmForEachFunctionBlocker
* \brief subclass of function blocker
*
*
*/
class cmForEachFunctionBlocker : public cmFunctionBlocker class cmForEachFunctionBlocker : public cmFunctionBlocker
{ {
public: public:
@ -37,11 +32,7 @@ private:
int Depth; int Depth;
}; };
/** \class cmForEachCommand /// Starts foreach() ... endforeach() block
* \brief starts an if block
*
* cmForEachCommand starts an if block
*/
class cmForEachCommand : public cmCommand class cmForEachCommand : public cmCommand
{ {
public: public:

View File

@ -17,11 +17,6 @@
#include "cmListFileCache.h" #include "cmListFileCache.h"
class cmMakefile; class cmMakefile;
/** \class cmFunctionBlocker
* \brief A class that defines an interface for blocking cmake functions
*
* This is the superclass for any classes that need to block a cmake function
*/
class cmFunctionBlocker class cmFunctionBlocker
{ {
public: public:

View File

@ -15,11 +15,6 @@
#include "cmCommand.h" #include "cmCommand.h"
#include "cmFunctionBlocker.h" #include "cmFunctionBlocker.h"
/** \class cmFunctionFunctionBlocker
* \brief subclass of function blocker
*
*
*/
class cmFunctionFunctionBlocker : public cmFunctionBlocker class cmFunctionFunctionBlocker : public cmFunctionBlocker
{ {
public: public:
@ -35,11 +30,7 @@ public:
int Depth; int Depth;
}; };
/** \class cmFunctionCommand /// Starts function() ... endfunction() block
* \brief starts an if block
*
* cmFunctionCommand starts an if block
*/
class cmFunctionCommand : public cmCommand class cmFunctionCommand : public cmCommand
{ {
public: public:

View File

@ -15,11 +15,6 @@
#include "cmCommand.h" #include "cmCommand.h"
#include "cmFunctionBlocker.h" #include "cmFunctionBlocker.h"
/** \class cmIfFunctionBlocker
* \brief subclass of function blocker
*
*
*/
class cmIfFunctionBlocker : public cmFunctionBlocker class cmIfFunctionBlocker : public cmFunctionBlocker
{ {
public: public:
@ -39,11 +34,7 @@ public:
unsigned int ScopeDepth; unsigned int ScopeDepth;
}; };
/** \class cmIfCommand /// Starts an if block
* \brief starts an if block
*
* cmIfCommand starts an if block
*/
class cmIfCommand : public cmCommand class cmIfCommand : public cmCommand
{ {
public: public:

View File

@ -160,15 +160,18 @@ public:
void AppendFeatureOptions(std::string& flags, const char* lang, void AppendFeatureOptions(std::string& flags, const char* lang,
const char* feature); const char* feature);
/** Translate a dependency as given in CMake code to the name to /** \brief Get absolute path to dependency \a name
appear in a generated build file. If the given name is that of *
a utility target, returns false. If the given name is that of * Translate a dependency as given in CMake code to the name to
a CMake target it will be transformed to the real output * appear in a generated build file.
location of that target for the given configuration. If the * - If \a name is a utility target, returns false.
given name is the full path to a file it will be returned. * - If \a name is a CMake target, it will be transformed to the real output
Otherwise the name is treated as a relative path with respect to * location of that target for the given configuration.
the source directory of this generator. This should only be * - If \a name is the full path to a file, it will be returned.
used for dependencies of custom commands. */ * - Otherwise \a name is treated as a relative path with respect to
* the source directory of this generator. This should only be
* used for dependencies of custom commands.
*/
bool GetRealDependency(const char* name, const char* config, bool GetRealDependency(const char* name, const char* config,
std::string& dep); std::string& dep);

View File

@ -15,11 +15,6 @@
#include "cmCommand.h" #include "cmCommand.h"
#include "cmFunctionBlocker.h" #include "cmFunctionBlocker.h"
/** \class cmMacroFunctionBlocker
* \brief subclass of function blocker
*
*
*/
class cmMacroFunctionBlocker : public cmFunctionBlocker class cmMacroFunctionBlocker : public cmFunctionBlocker
{ {
public: public:
@ -35,11 +30,7 @@ public:
int Depth; int Depth;
}; };
/** \class cmMacroCommand /// Starts macro() ... endmacro() block
* \brief starts an if block
*
* cmMacroCommand starts an if block
*/
class cmMacroCommand : public cmCommand class cmMacroCommand : public cmCommand
{ {
public: public:

View File

@ -14,10 +14,7 @@
#include "cmCommand.h" #include "cmCommand.h"
/** \class cmMathCommand /// Mathematical expressions: math(EXPR ...) command.
* \brief Common string operations
*
*/
class cmMathCommand : public cmCommand class cmMathCommand : public cmCommand
{ {
public: public:

View File

@ -21,8 +21,9 @@ class cmPolicy;
/** \class cmPolicies /** \class cmPolicies
* \brief Handles changes in CMake behavior and policies * \brief Handles changes in CMake behavior and policies
* *
* See the cmake wiki section on policies for an overview of this class's * See the cmake wiki section on
* purpose * <a href="http://www.cmake.org/Wiki/CMake/Policies">policies</a>
* for an overview of this class's purpose
*/ */
class cmPolicies class cmPolicies
{ {
@ -30,32 +31,46 @@ public:
cmPolicies(); cmPolicies();
~cmPolicies(); ~cmPolicies();
enum PolicyStatus { OLD, WARN, NEW, REQUIRED_IF_USED, REQUIRED_ALWAYS }; /// Status of a policy
enum PolicyStatus {
OLD, ///< Use old behavior
WARN, ///< Use old behavior but issue a warning
NEW, ///< Use new behavior
/// Issue an error if user doesn't set policy status to NEW and hits the
/// check
REQUIRED_IF_USED,
REQUIRED_ALWAYS ///< Issue an error unless user sets policy status to NEW.
};
static const char* PolicyStatusNames[]; static const char* PolicyStatusNames[];
/// Policy identifiers
enum PolicyID enum PolicyID
{ {
CMP0000, // Policy version specification CMP0000, ///< Policy version specification
CMP0001, // Ignore old compatibility variable CMP0001, ///< Ignore old compatibility variable
CMP0002, // Target names must be unique CMP0002, ///< Target names must be unique
CMP0003, // Linking does not include extra -L paths CMP0003, ///< Linking does not include extra -L paths
CMP0004, // Libraries linked may not have leading or trailing whitespace CMP0004, ///< Libraries linked may not have leading or trailing whitespace
CMP0005, // Definition value escaping CMP0005, ///< Definition value escaping
CMP0006, // BUNDLE install rules needed for MACOSX_BUNDLE targets CMP0006, ///< BUNDLE install rules needed for MACOSX_BUNDLE targets
CMP0007, // list command handling of empty elements CMP0007, ///< list command handling of empty elements
CMP0008, // Full-path libraries must be a valid library file name CMP0008, ///< Full-path libraries must be a valid library file name
CMP0009, // GLOB_RECURSE should not follow symlinks by default CMP0009, ///< GLOB_RECURSE should not follow symlinks by default
CMP0010, // Bad variable reference syntax is an error CMP0010, ///< Bad variable reference syntax is an error
CMP0011, // Strong policy scope for include and find_package CMP0011, ///< Strong policy scope for include and find_package
CMP0012, // Recognize numbers and boolean constants in if() CMP0012, ///< Recognize numbers and boolean constants in if()
CMP0013, // Duplicate binary directories not allowed CMP0013, ///< Duplicate binary directories not allowed
CMP0014, // Input directories must have CMakeLists.txt CMP0014, ///< Input directories must have CMakeLists.txt
CMP0015, // link_directories() treats paths relative to source dir CMP0015, ///< link_directories() treats paths relative to source dir
CMP0016, // target_link_libraries() fails if only argument is not a target /// target_link_libraries() fails if only argument is not a target
CMP0017, // Prefer files in CMAKE_ROOT when including from CMAKE_ROOT CMP0016,
CMP0017, ///< Prefer files in CMAKE_ROOT when including from CMAKE_ROOT
// Always the last entry. Useful mostly to avoid adding a comma /** \brief Always the last entry.
// the last policy when adding a new one. *
* Useful mostly to avoid adding a comma the last policy when adding a new
* one.
*/
CMPCOUNT CMPCOUNT
}; };

View File

@ -14,36 +14,47 @@
#include "cmProperty.h" #include "cmProperty.h"
/** \class cmPropertyDefinition
* \brief Property meta-information
*
* This class contains the following meta-information about property:
* - Name;
* - Various documentation strings;
* - The scope of the property;
* - If the property is chained.
*/
class cmPropertyDefinition class cmPropertyDefinition
{ {
public: public:
// Define this property /// Define this property
void DefineProperty(const char *name, cmProperty::ScopeType scope, void DefineProperty(const char *name, cmProperty::ScopeType scope,
const char *ShortDescription, const char *ShortDescription,
const char *FullDescription, const char *FullDescription,
const char *DocumentationSection, const char *DocumentationSection,
bool chained); bool chained);
// get the documentation string /// Get the documentation string
cmDocumentationEntry GetDocumentation() const; cmDocumentationEntry GetDocumentation() const;
// basic constructor /// Default constructor
cmPropertyDefinition() { this->Chained = false; }; cmPropertyDefinition() { this->Chained = false; };
// is it chained? /// Is the property chained?
bool IsChained() const { return this->Chained; }; bool IsChained() const { return this->Chained; };
// Get the section if any /// Get the section if any
const std::string &GetDocumentationSection() const { const std::string &GetDocumentationSection() const {
return this->DocumentationSection; }; return this->DocumentationSection; };
// get the scope /// Get the scope
cmProperty::ScopeType GetScope() const { cmProperty::ScopeType GetScope() const {
return this->Scope; }; return this->Scope; };
// get the docs /// Get the documentation (short version)
const std::string &GetShortDescription() const { const std::string &GetShortDescription() const {
return this->ShortDescription; }; return this->ShortDescription; };
/// Get the documentation (full version)
const std::string &GetFullDescription() const { const std::string &GetFullDescription() const {
return this->FullDescription; }; return this->FullDescription; };

View File

@ -16,11 +16,6 @@
#include "cmFunctionBlocker.h" #include "cmFunctionBlocker.h"
#include "cmListFileCache.h" #include "cmListFileCache.h"
/** \class cmWhileFunctionBlocker
* \brief subclass of function blocker
*
*
*/
class cmWhileFunctionBlocker : public cmFunctionBlocker class cmWhileFunctionBlocker : public cmFunctionBlocker
{ {
public: public:
@ -37,11 +32,7 @@ private:
int Depth; int Depth;
}; };
/** \class cmWhileCommand /// \brief Starts a while loop
* \brief starts a while loop
*
* cmWhileCommand starts a while loop
*/
class cmWhileCommand : public cmCommand class cmWhileCommand : public cmCommand
{ {
public: public:

View File

@ -9,28 +9,6 @@
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the License for more information. See the License for more information.
============================================================================*/ ============================================================================*/
// This class represents a cmake invocation. It is the top level class when
// running cmake. Most cmake based GUIS should primarily create an instance
// of this class and communicate with it.
//
// The basic process for a GUI is as follows:
//
// 1) Create a cmake instance
// 2) Set the Home & Start directories, generator, and cmake command. this
// can be done using the Set methods or by using SetArgs and passing in
// command line arguments.
// 3) Load the cache by calling LoadCache (duh)
// 4) if you are using command line arguments with -D or -C flags then
// call SetCacheArgs (or if for some other reason you want to modify the
// cache, do it now.
// 5) Finally call Configure
// 6) Let the user change values and go back to step 5
// 7) call Generate
//
// If your GUI allows the user to change the start & home directories then
// you must at a minimum redo steps 2 through 7.
//
#ifndef cmake_h #ifndef cmake_h
#define cmake_h #define cmake_h
@ -53,6 +31,30 @@ class cmListFileBacktrace;
class cmTarget; class cmTarget;
class cmGeneratedFileStream; class cmGeneratedFileStream;
/** \brief Represents a cmake invocation.
*
* This class represents a cmake invocation. It is the top level class when
* running cmake. Most cmake based GUIS should primarily create an instance
* of this class and communicate with it.
*
* The basic process for a GUI is as follows:
*
* -# Create a cmake instance
* -# Set the Home & Start directories, generator, and cmake command. this
* can be done using the Set methods or by using SetArgs and passing in
* command line arguments.
* -# Load the cache by calling LoadCache (duh)
* -# if you are using command line arguments with -D or -C flags then
* call SetCacheArgs (or if for some other reason you want to modify the
* cache), do it now.
* -# Finally call Configure
* -# Let the user change values and go back to step 5
* -# call Generate
* If your GUI allows the user to change the start & home directories then
* you must at a minimum redo steps 2 through 7.
*/
class cmake class cmake
{ {
public: public:
@ -66,31 +68,33 @@ class cmake
}; };
/** Describes the working modes of cmake. /** \brief Describes the working modes of cmake */
* NORMAL_MODE: cmake runs to create project files
* SCRIPT_MODE: in script mode there is no generator and no cache. Also,
* language are not enabled, so add_executable and things do
* not do anything. Started by using -P
* FIND_PACKAGE_MODE: cmake runs in pkg-config like mode, i.e. it just
* searches for a package and prints the results to stdout.
* This is similar to SCRIPT_MODE, but commands like
* add_library() work too, since they may be used e.g. in
* exported target files. Started via --find-package
*/
enum WorkingMode enum WorkingMode
{ {
NORMAL_MODE, NORMAL_MODE, ///< Cmake runs to create project files
/** \brief Script mode (started by using -P).
*
* In script mode there is no generator and no cache. Also,
* languages are not enabled, so add_executable and things do
* nothing.
*/
SCRIPT_MODE, SCRIPT_MODE,
/** \brief A pkg-config like mode
*
* In this mode cmake just searches for a package and prints the results to
* stdout. This is similar to SCRIPT_MODE, but commands like add_library()
* work too, since they may be used e.g. in exported target files. Started
* via --find-package.
*/
FIND_PACKAGE_MODE FIND_PACKAGE_MODE
}; };
typedef std::map<cmStdString, cmCommand*> RegisteredCommandsMap; typedef std::map<cmStdString, cmCommand*> RegisteredCommandsMap;
///! construct an instance of cmake /// Default constructor
cmake(); cmake();
///! destruct an instance of cmake /// Destructor
~cmake(); ~cmake();
///! construct an instance of cmake
static const char *GetCMakeFilesDirectory() {return "/CMakeFiles";}; static const char *GetCMakeFilesDirectory() {return "/CMakeFiles";};
static const char *GetCMakeFilesDirectoryPostSlash() { static const char *GetCMakeFilesDirectoryPostSlash() {
return "CMakeFiles/";}; return "CMakeFiles/";};
@ -164,12 +168,6 @@ class cmake
int Configure(); int Configure();
int ActualConfigure(); int ActualConfigure();
/**
* Configure the cmMakefiles. This routine will create a GlobalGenerator if
* one has not already been set. It will then Call Configure on the
* GlobalGenerator. This in turn will read in an process all the CMakeList
* files for the tree. It will not produce any actual Makefiles, or
* workspaces. Generate does that. */
int LoadCache(); int LoadCache();
void PreLoadCMakeFiles(); void PreLoadCMakeFiles();