ENH: change to make the documentation class more generic, about halfway there, also provides secitons for Variables now
This commit is contained in:
parent
cfb84d8562
commit
6cdf032505
|
@ -113,6 +113,7 @@ SET(SRCS
|
|||
cmDocumentationFormatterMan.cxx
|
||||
cmDocumentationFormatterText.cxx
|
||||
cmDocumentationFormatterUsage.cxx
|
||||
cmDocumentationSection.cxx
|
||||
cmDocumentVariables.cxx
|
||||
cmDynamicLoader.cxx
|
||||
cmDynamicLoader.h
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
#include <cmsys/CommandLineArguments.hxx>
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
static const cmDocumentationEntry cmDocumentationName[] =
|
||||
static const char * cmDocumentationName[][3] =
|
||||
{
|
||||
{0,
|
||||
" cpack - Packaging driver provided by CMake.", 0},
|
||||
|
@ -39,7 +39,7 @@ static const cmDocumentationEntry cmDocumentationName[] =
|
|||
};
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
static const cmDocumentationEntry cmDocumentationUsage[] =
|
||||
static const char * cmDocumentationUsage[][3] =
|
||||
{
|
||||
{0,
|
||||
" cpack -G <generator> [options]",
|
||||
|
@ -48,7 +48,7 @@ static const cmDocumentationEntry cmDocumentationUsage[] =
|
|||
};
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
static const cmDocumentationEntry cmDocumentationDescription[] =
|
||||
static const char * cmDocumentationDescription[][3] =
|
||||
{
|
||||
{0,
|
||||
"The \"cpack\" executable is the CMake packaging program. "
|
||||
|
@ -60,7 +60,7 @@ static const cmDocumentationEntry cmDocumentationDescription[] =
|
|||
};
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
static const cmDocumentationEntry cmDocumentationOptions[] =
|
||||
static const char * cmDocumentationOptions[][3] =
|
||||
{
|
||||
{"-G <generator>", "Use the specified generator to generate package.",
|
||||
"CPack may support multiple native packaging systems on certain "
|
||||
|
@ -79,7 +79,7 @@ static const cmDocumentationEntry cmDocumentationOptions[] =
|
|||
};
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
static const cmDocumentationEntry cmDocumentationSeeAlso[] =
|
||||
static const char * cmDocumentationSeeAlso[][3] =
|
||||
{
|
||||
{0, "cmake", 0},
|
||||
{0, "ccmake", 0},
|
||||
|
@ -447,10 +447,10 @@ int main (int argc, char *argv[])
|
|||
doc.CheckOptions(argc, argv);
|
||||
// Construct and print requested documentation.
|
||||
doc.SetName("cpack");
|
||||
doc.SetNameSection(cmDocumentationName);
|
||||
doc.SetUsageSection(cmDocumentationUsage);
|
||||
doc.SetDescriptionSection(cmDocumentationDescription);
|
||||
doc.SetOptionsSection(cmDocumentationOptions);
|
||||
doc.SetSection("Name",cmDocumentationName);
|
||||
doc.SetSection("Usage",cmDocumentationUsage);
|
||||
doc.SetSection("Description",cmDocumentationDescription);
|
||||
doc.SetSection("Options",cmDocumentationOptions);
|
||||
|
||||
std::vector<cmDocumentationEntry> v;
|
||||
cmCPackGenerators::DescriptionsMap::const_iterator generatorIt;
|
||||
|
@ -459,14 +459,12 @@ int main (int argc, char *argv[])
|
|||
++ generatorIt )
|
||||
{
|
||||
cmDocumentationEntry e;
|
||||
e.name = generatorIt->first.c_str();
|
||||
e.brief = generatorIt->second.c_str();
|
||||
e.full = "";
|
||||
e.Name = generatorIt->first.c_str();
|
||||
e.Brief = generatorIt->second.c_str();
|
||||
e.Full = "";
|
||||
v.push_back(e);
|
||||
}
|
||||
cmDocumentationEntry empty = {0,0,0};
|
||||
v.push_back(empty);
|
||||
doc.SetGeneratorsSection(&v[0]);
|
||||
doc.SetSection("Generators",v);
|
||||
|
||||
doc.SetSeeAlsoList(cmDocumentationSeeAlso);
|
||||
#undef cout
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
#include <form.h>
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
static const cmDocumentationEntry cmDocumentationName[] =
|
||||
static const char * cmDocumentationName[][3] =
|
||||
{
|
||||
{0,
|
||||
" ccmake - Curses Interface for CMake.", 0},
|
||||
|
@ -36,7 +36,7 @@ static const cmDocumentationEntry cmDocumentationName[] =
|
|||
};
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
static const cmDocumentationEntry cmDocumentationUsage[] =
|
||||
static const char * cmDocumentationUsage[][3] =
|
||||
{
|
||||
{0,
|
||||
" ccmake <path-to-source>\n"
|
||||
|
@ -45,7 +45,7 @@ static const cmDocumentationEntry cmDocumentationUsage[] =
|
|||
};
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
static const cmDocumentationEntry cmDocumentationDescription[] =
|
||||
static const char * cmDocumentationDescription[][3] =
|
||||
{
|
||||
{0,
|
||||
"The \"ccmake\" executable is the CMake curses interface. Project "
|
||||
|
@ -57,14 +57,14 @@ static const cmDocumentationEntry cmDocumentationDescription[] =
|
|||
};
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
static const cmDocumentationEntry cmDocumentationOptions[] =
|
||||
static const char * cmDocumentationOptions[][3] =
|
||||
{
|
||||
CMAKE_STANDARD_OPTIONS_TABLE,
|
||||
{0,0,0}
|
||||
};
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
static const cmDocumentationEntry cmDocumentationSeeAlso[] =
|
||||
static const char * cmDocumentationSeeAlso[][3] =
|
||||
{
|
||||
{0, "cmake", 0},
|
||||
{0, "ctest", 0},
|
||||
|
@ -116,13 +116,13 @@ int main(int argc, char** argv)
|
|||
hcm.GetCommandDocumentation(compatCommands, false, true);
|
||||
hcm.GetGeneratorDocumentation(generators);
|
||||
doc.SetName("ccmake");
|
||||
doc.SetNameSection(cmDocumentationName);
|
||||
doc.SetUsageSection(cmDocumentationUsage);
|
||||
doc.SetDescriptionSection(cmDocumentationDescription);
|
||||
doc.SetGeneratorsSection(&generators[0]);
|
||||
doc.SetOptionsSection(cmDocumentationOptions);
|
||||
doc.SetCommandsSection(&commands[0]);
|
||||
doc.SetCompatCommandsSection(&compatCommands[0]);
|
||||
doc.SetSection("Name",cmDocumentationName);
|
||||
doc.SetSection("Usage",cmDocumentationUsage);
|
||||
doc.SetSection("Description",cmDocumentationDescription);
|
||||
doc.SetSection("Generators",generators);
|
||||
doc.SetSection("Options",cmDocumentationOptions);
|
||||
doc.SetSection("Command",commands);
|
||||
doc.SetSection("Compatibility Commands",compatCommands);
|
||||
doc.SetSeeAlsoList(cmDocumentationSeeAlso);
|
||||
return doc.PrintRequestedDocumentation(std::cout)? 0:1;
|
||||
}
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
static const cmDocumentationEntry cmDocumentationName[] =
|
||||
static const char * cmDocumentationName[][3] =
|
||||
{
|
||||
{0,
|
||||
" CMakeSetup - CMake Windows GUI.", 0},
|
||||
|
@ -18,7 +18,7 @@ static const cmDocumentationEntry cmDocumentationName[] =
|
|||
};
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
static const cmDocumentationEntry cmDocumentationUsage[] =
|
||||
static const char * cmDocumentationUsage[][3] =
|
||||
{
|
||||
{0,
|
||||
" CMakeSetup [options]\n"
|
||||
|
@ -28,7 +28,7 @@ static const cmDocumentationEntry cmDocumentationUsage[] =
|
|||
};
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
static const cmDocumentationEntry cmDocumentationDescription[] =
|
||||
static const char * cmDocumentationDescription[][3] =
|
||||
{
|
||||
{0,
|
||||
"The \"CMakeSetup\" executable is the CMake Windows GUI. Project "
|
||||
|
@ -40,7 +40,7 @@ static const cmDocumentationEntry cmDocumentationDescription[] =
|
|||
};
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
static const cmDocumentationEntry cmDocumentationOptions[] =
|
||||
static const char * cmDocumentationOptions[][3] =
|
||||
{
|
||||
{"-A[on|off]", "Enable/disable display of advanced cache values.",
|
||||
"There are two categories of CMake cache values: non-advanced and "
|
||||
|
@ -121,13 +121,13 @@ BOOL CMakeSetup::InitInstance()
|
|||
hcm.GetCommandDocumentation(compatCommands, false, true);
|
||||
hcm.GetGeneratorDocumentation(generators);
|
||||
doc.SetName("cmake");
|
||||
doc.SetNameSection(cmDocumentationName);
|
||||
doc.SetUsageSection(cmDocumentationUsage);
|
||||
doc.SetDescriptionSection(cmDocumentationDescription);
|
||||
doc.SetGeneratorsSection(&generators[0]);
|
||||
doc.SetOptionsSection(cmDocumentationOptions);
|
||||
doc.SetCommandsSection(&commands[0]);
|
||||
doc.SetCompatCommandsSection(&compatCommands[0]);
|
||||
doc.SetSection("Name",cmDocumentationName);
|
||||
doc.SetSection("Usage",cmDocumentationUsage);
|
||||
doc.SetSection("Description",cmDocumentationDescription);
|
||||
doc.SetSection("Generators",generators);
|
||||
doc.SetSection("Options",cmDocumentationOptions);
|
||||
doc.SetSection("Commands",commands);
|
||||
doc.SetSection("Compatilbility Commands", compatCommands);
|
||||
|
||||
return (doc.PrintRequestedDocumentation(std::cout)? 0:1);
|
||||
}
|
||||
|
|
|
@ -11,19 +11,22 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
|
|||
"This is the full path to the CMake executable cmake which is "
|
||||
"useful from custom commands that want to use the cmake -E "
|
||||
"option for portable system commands. "
|
||||
"(e.g. /usr/local/bin/cmake");
|
||||
"(e.g. /usr/local/bin/cmake", false,
|
||||
"Variables that Provide Information");
|
||||
cm->DefineProperty
|
||||
("CMAKE_BINARY_DIR", cmProperty::VARIABLE,
|
||||
"The path to the top level of the build tree.",
|
||||
"This is the full path to the top level of the current CMake "
|
||||
"build tree. For an in-source build, this would be the same "
|
||||
"as CMAKE_SOURCE_DIR. ");
|
||||
"as CMAKE_SOURCE_DIR. ", false,
|
||||
"Variables that Provide Information");
|
||||
cm->DefineProperty
|
||||
("CMAKE_SOURCE_DIR", cmProperty::VARIABLE,
|
||||
"The path to the top level of the source tree.",
|
||||
"This is the full path to the top level of the current CMake "
|
||||
"source tree. For an in-source build, this would be the same "
|
||||
"as CMAKE_BINARY_DIR. ");
|
||||
"as CMAKE_BINARY_DIR. ", false,
|
||||
"Variables that Provide Information");
|
||||
cm->DefineProperty
|
||||
("CMAKE_CURRENT_BINARY_DIR", cmProperty::VARIABLE,
|
||||
"The path to the binary directory currently being processed.",
|
||||
|
@ -32,22 +35,26 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
|
|||
"add_subdirectory will create a binary directory in the build "
|
||||
"tree, and as it is being processed this variable will be set. "
|
||||
"For in-source builds this is the current source directory "
|
||||
"being processed.");
|
||||
"being processed.", false,
|
||||
"Variables that Provide Information");
|
||||
cm->DefineProperty
|
||||
("CMAKE_CURRENT_SOURCE_DIR", cmProperty::VARIABLE,
|
||||
"The path to the source directory currently being processed.",
|
||||
"This the full path to the source directory that is currently "
|
||||
"being processed by cmake. ");
|
||||
"being processed by cmake. ", false,
|
||||
"Variables that Provide Information");
|
||||
cm->DefineProperty
|
||||
("CMAKE_CURRENT_LIST_FILE", cmProperty::VARIABLE,
|
||||
"The path to the file currently being processed.",
|
||||
"This the full path to the file that is currently "
|
||||
"being processed by cmake. ");
|
||||
"being processed by cmake. ", false,
|
||||
"Variables that Provide Information");
|
||||
cm->DefineProperty
|
||||
("CMAKE_CURRENT_LIST_LINE", cmProperty::VARIABLE,
|
||||
"The line number of the current file being processed.",
|
||||
"This is the line number of the file currently being"
|
||||
" processed by cmake.");
|
||||
" processed by cmake.", false,
|
||||
"Variables that Provide Information");
|
||||
cm->DefineProperty
|
||||
("CMAKE_BUILD_TOOL", cmProperty::VARIABLE,
|
||||
"Tool used for the acutal build process.",
|
||||
|
@ -59,27 +66,31 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
|
|||
"and for Visual Studio 7 it set to devenv. For "
|
||||
"Nmake Makefiles the value is nmake. This can be "
|
||||
"useful for adding special flags and commands based"
|
||||
" on the final build environment. ");
|
||||
" on the final build environment. ", false,
|
||||
"Variables that Provide Information");
|
||||
cm->DefineProperty
|
||||
("CMAKE_CACHEFILE_DIR", cmProperty::VARIABLE,
|
||||
"The directory with the CMakeCache.txt file.",
|
||||
"This is the full path to the directory that has the "
|
||||
"CMakeCache.txt file in it. This is the same as "
|
||||
"CMAKE_BINARY_DIR.");
|
||||
"CMAKE_BINARY_DIR.", false,
|
||||
"Variables that Provide Information");
|
||||
cm->DefineProperty
|
||||
("CMAKE_CACHE_MAJOR_VERSION", cmProperty::VARIABLE,
|
||||
"Major version of CMake used to create the CMakeCache.txt file",
|
||||
"This is stores the major version of CMake used to "
|
||||
"write a CMake cache file. It is only different when "
|
||||
"a different version of CMake is run on a previously "
|
||||
"created cache file.");
|
||||
"created cache file.", false,
|
||||
"Variables that Provide Information");
|
||||
cm->DefineProperty
|
||||
("CMAKE_CACHE_MINOR_VERSION", cmProperty::VARIABLE,
|
||||
"Minor version of CMake used to create the CMakeCache.txt file",
|
||||
"This is stores the minor version of CMake used to "
|
||||
"write a CMake cache file. It is only different when "
|
||||
"a different version of CMake is run on a previously "
|
||||
"created cache file.");
|
||||
"created cache file.", false,
|
||||
"Variables that Provide Information");
|
||||
|
||||
cm->DefineProperty
|
||||
("CMAKE_CACHE_RELEASE_VERSION", cmProperty::VARIABLE,
|
||||
|
@ -87,7 +98,8 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
|
|||
"This is stores the release version of CMake used to "
|
||||
"write a CMake cache file. It is only different when "
|
||||
"a different version of CMake is run on a previously "
|
||||
"created cache file.");
|
||||
"created cache file.", false,
|
||||
"Variables that Provide Information");
|
||||
|
||||
cm->DefineProperty
|
||||
("CMAKE_CFG_INTDIR", cmProperty::VARIABLE,
|
||||
|
@ -111,7 +123,8 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
|
|||
"compiler. If it has a value, it will be the "
|
||||
"intermediate directory used to build the file. "
|
||||
"This way an executable or a library can find files "
|
||||
"that are located in the build directory.");
|
||||
"that are located in the build directory.",false,
|
||||
"Variables that Provide Information");
|
||||
|
||||
cm->DefineProperty
|
||||
("CMAKE_CTEST_COMMAND", cmProperty::VARIABLE,
|
||||
|
@ -119,128 +132,150 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
|
|||
"This is the full path to the CTest executable ctest "
|
||||
"which is useful from custom commands that want "
|
||||
" to use the cmake -E option for portable system "
|
||||
"commands.");
|
||||
"commands.",false,
|
||||
"Variables that Provide Information");
|
||||
cm->DefineProperty
|
||||
("CMAKE_DL_LIBS", cmProperty::VARIABLE,
|
||||
"Name of library containing dlopen and dlcose.",
|
||||
"The name of the library that has dlopen and "
|
||||
"dlclose in it, usually -ldl on most UNIX machines.");
|
||||
"dlclose in it, usually -ldl on most UNIX machines.",false,
|
||||
"Variables that Provide Information");
|
||||
cm->DefineProperty
|
||||
("CMAKE_EDIT_COMMAND", cmProperty::VARIABLE,
|
||||
"Full path to CMakeSetup or ccmake.",
|
||||
"This is the full path to the CMake executable "
|
||||
"that can graphically edit the cache. For example,"
|
||||
" CMakeSetup, ccmake, or cmake -i.");
|
||||
" CMakeSetup, ccmake, or cmake -i.",false,
|
||||
"Variables that Provide Information");
|
||||
cm->DefineProperty
|
||||
("CMAKE_GENERATOR", cmProperty::VARIABLE,
|
||||
"The generator used to build the project.",
|
||||
"The name of the generator that is being used to generate the "
|
||||
"build files. (e.g. \"Unix Makefiles\", "
|
||||
"\"Visual Studio 6\", etc.)");
|
||||
"\"Visual Studio 6\", etc.)",false,
|
||||
"Variables that Provide Information");
|
||||
cm->DefineProperty
|
||||
("CMAKE_HOME_DIRECTORY", cmProperty::VARIABLE,
|
||||
"Path to top of source tree.",
|
||||
"This is the path to the top level of the source tree.");
|
||||
"This is the path to the top level of the source tree.",false,
|
||||
"Variables that Provide Information");
|
||||
cm->DefineProperty
|
||||
("CMAKE_LINK_LIBRARY_SUFFIX", cmProperty::VARIABLE,
|
||||
"The suffix for libraries that you link to.",
|
||||
"The suffix to use for the end of a library, .lib on Windows.");
|
||||
"The suffix to use for the end of a library, .lib on Windows.",false,
|
||||
"Variables that Provide Information");
|
||||
cm->DefineProperty
|
||||
("CMAKE_MAJOR_VERSION", cmProperty::VARIABLE,
|
||||
"The Major version of cmake (i.e. the 2 in 2.X.X)",
|
||||
"This specifies the major version of the CMake executable"
|
||||
" being run.");
|
||||
" being run.",false,
|
||||
"Variables that Provide Information");
|
||||
cm->DefineProperty
|
||||
("CMAKE_MAKE_PROGRAM", cmProperty::VARIABLE,
|
||||
"See CMAKE_BUILD_TOOL.",
|
||||
"This variable is around for backwards compatibility, "
|
||||
"see CMAKE_BUILD_TOOL.");
|
||||
"see CMAKE_BUILD_TOOL.",false,
|
||||
"Variables that Provide Information");
|
||||
cm->DefineProperty
|
||||
("CMAKE_MINOR_VERSION", cmProperty::VARIABLE,
|
||||
"The Minor version of cmake (i.e. the 4 in X.4.X).",
|
||||
"This specifies the minor version of the CMake"
|
||||
" executable being run.");
|
||||
" executable being run.",false,
|
||||
"Variables that Provide Information");
|
||||
cm->DefineProperty
|
||||
("CMAKE_PROJECT_NAME", cmProperty::VARIABLE,
|
||||
"The name of the current project.",
|
||||
"This specifies name of the current project from"
|
||||
" the closest inherited PROJECT command.");
|
||||
" the closest inherited PROJECT command.",false,
|
||||
"Variables that Provide Information");
|
||||
cm->DefineProperty
|
||||
("CMAKE_RANLIB", cmProperty::VARIABLE,
|
||||
"Name of randomizing tool for static libraries.",
|
||||
"This specifies name of the program that randomizes "
|
||||
"libraries on UNIX, not used on Windows, but may be present.");
|
||||
"libraries on UNIX, not used on Windows, but may be present.",false,
|
||||
"Variables that Provide Information");
|
||||
cm->DefineProperty
|
||||
("CMAKE_ROOT", cmProperty::VARIABLE,
|
||||
"Install directory for running cmake.",
|
||||
"This is the install root for the running CMake and"
|
||||
" the Modules directory can be found here. This is"
|
||||
" commonly used in this format: ${CMAKE_ROOT}/Modules");
|
||||
" commonly used in this format: ${CMAKE_ROOT}/Modules",false,
|
||||
"Variables that Provide Information");
|
||||
cm->DefineProperty
|
||||
("CMAKE_SIZEOF_VOID_P", cmProperty::VARIABLE,
|
||||
"Size of a void pointer.",
|
||||
"This is set to the size of a pointer on the machine, "
|
||||
"and is determined by a try compile. If a 64 bit size "
|
||||
"is found, then the library search path is modified to "
|
||||
"look for 64 bit libraries first.");
|
||||
"look for 64 bit libraries first.",false,
|
||||
"Variables that Provide Information");
|
||||
cm->DefineProperty
|
||||
("CMAKE_SKIP_RPATH", cmProperty::VARIABLE,
|
||||
"If true, do not add run time path information.",
|
||||
"If this is set to TRUE, then the rpath information "
|
||||
"is not added to compiled executables. The default"
|
||||
"is to add rpath information if the platform supports it."
|
||||
"This allows for easy running from the build tree.");
|
||||
"This allows for easy running from the build tree.",false,
|
||||
"Variables that Provide Information");
|
||||
cm->DefineProperty
|
||||
("CMAKE_SOURCE_DIR", cmProperty::VARIABLE,
|
||||
"Source directory for project.",
|
||||
"This is the top level source directory for the project. "
|
||||
"It corresponds to the source directory given to "
|
||||
"CMakeSetup or ccmake.");
|
||||
"CMakeSetup or ccmake.",false,
|
||||
"Variables that Provide Information");
|
||||
cm->DefineProperty
|
||||
("CMAKE_STANDARD_LIBRARIES", cmProperty::VARIABLE,
|
||||
"Libraries linked into every executable and shared library.",
|
||||
"This is the list of libraries that are linked "
|
||||
"into all executables and libraries.");
|
||||
"into all executables and libraries.",false,
|
||||
"Variables that Provide Information");
|
||||
cm->DefineProperty
|
||||
("CMAKE_USING_VC_FREE_TOOLS", cmProperty::VARIABLE,
|
||||
"True if free visual studio tools being used.",
|
||||
"This is set to true if the compiler is Visual "
|
||||
"Studio free tools.");
|
||||
"Studio free tools.",false,
|
||||
"Variables that Provide Information");
|
||||
cm->DefineProperty
|
||||
("CMAKE_VERBOSE_MAKEFILE", cmProperty::VARIABLE,
|
||||
"Create verbose makefiles if on.",
|
||||
"This variable defaults to false. You can set "
|
||||
"this variable to true to make CMake produce verbose "
|
||||
"makefiles that show each command line as it is used.");
|
||||
"makefiles that show each command line as it is used.",false,
|
||||
"Variables that Provide Information");
|
||||
cm->DefineProperty
|
||||
("PROJECT_BINARY_DIR", cmProperty::VARIABLE,
|
||||
"Full path to build directory for project.",
|
||||
"This is the binary directory of the most recent "
|
||||
"PROJECT command.");
|
||||
"PROJECT command.",false,"Variables that Provide Information");
|
||||
cm->DefineProperty
|
||||
("PROJECT_NAME", cmProperty::VARIABLE,
|
||||
"Name of the project given to the project command.",
|
||||
"This is the name given to the most "
|
||||
"recent PROJECT command. ");
|
||||
"recent PROJECT command. ",false,
|
||||
"Variables that Provide Information");
|
||||
cm->DefineProperty
|
||||
("PROJECT_SOURCE_DIR", cmProperty::VARIABLE,
|
||||
"Top level source directory for the current project.",
|
||||
"This is the source directory of the most recent "
|
||||
"PROJECT command.");
|
||||
"PROJECT command.",false,
|
||||
"Variables that Provide Information");
|
||||
cm->DefineProperty
|
||||
("[Project name]_BINARY_DIR", cmProperty::VARIABLE,
|
||||
"Top level binary directory for the named project.",
|
||||
"A variable is created with the name used in the PROJECT "
|
||||
"command, and is the binary directory for the project. "
|
||||
" This can be useful when SUBDIR is used to connect "
|
||||
"several projects.");
|
||||
"several projects.",false,
|
||||
"Variables that Provide Information");
|
||||
cm->DefineProperty
|
||||
("[Project name]_SOURCE_DIR", cmProperty::VARIABLE,
|
||||
"Top level source directory for the named project.",
|
||||
"A variable is created with the name used in the PROJECT "
|
||||
"command, and is the source directory for the project."
|
||||
" This can be useful when add_subdirectory "
|
||||
"is used to connect several projects.");
|
||||
"is used to connect several projects.",false,
|
||||
"Variables that Provide Information");
|
||||
|
||||
// Variables defined by cmake, that change the behavior
|
||||
// of cmake
|
||||
|
@ -255,7 +290,8 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
|
|||
"variables with the name "
|
||||
" CMAKE_C_FLAGS_[Debug|Release|RelWithDebInfo|MinSizeRel]."
|
||||
" For example, if CMAKE_BUILD_TYPE is Debug, then "
|
||||
"CMAKE_C_FLAGS_DEBUG will be added to the CMAKE_C_FLAGS.");
|
||||
"CMAKE_C_FLAGS_DEBUG will be added to the CMAKE_C_FLAGS.",false,
|
||||
"Variables That Change Behavior");
|
||||
|
||||
cm->DefineProperty
|
||||
("CMAKE_BACKWARDS_COMPATIBILITY", cmProperty::VARIABLE,
|
||||
|
@ -267,7 +303,8 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
|
|||
" CMake to support deprecated commands of CMake in projects"
|
||||
" that were written to use older versions of CMake. This "
|
||||
"can be set by the user or set at the beginning of a "
|
||||
"CMakeLists file.");
|
||||
"CMakeLists file.",false,
|
||||
"Variables That Change Behavior");
|
||||
|
||||
cm->DefineProperty
|
||||
("CMAKE_INSTALL_PREFIX", cmProperty::VARIABLE,
|
||||
|
@ -275,7 +312,8 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
|
|||
"If \"make install\" is invoked or INSTALL is built"
|
||||
", this directory is pre-pended onto all install "
|
||||
"directories. This variable defaults to /usr/local"
|
||||
" on UNIX and c:/Program Files on Windows.");
|
||||
" on UNIX and c:/Program Files on Windows.",false,
|
||||
"Variables That Change Behavior");
|
||||
cm->DefineProperty
|
||||
("CMAKE_USER_MAKE_RULES_OVERRIDE", cmProperty::VARIABLE,
|
||||
"Specify a file that can change the build rule variables.",
|
||||
|
@ -284,7 +322,8 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
|
|||
"after all the system settings have been set, but "
|
||||
"before they have been used. This would allow you "
|
||||
"to override any variables that need to be changed "
|
||||
"for some special project. ");
|
||||
"for some special project. ",false,
|
||||
"Variables That Change Behavior");
|
||||
|
||||
cm->DefineProperty
|
||||
("BUILD_SHARED_LIBS", cmProperty::VARIABLE,
|
||||
|
@ -294,13 +333,15 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
|
|||
"static library. This variable is often added to projects "
|
||||
"as an OPTION so that each user of a project can decide if "
|
||||
"they want to build the project using shared or static "
|
||||
"libraries.");
|
||||
"libraries.",false,
|
||||
"Variables That Change Behavior");
|
||||
|
||||
cm->DefineProperty
|
||||
("CMAKE_NOT_USING_CONFIG_FLAGS", cmProperty::VARIABLE,
|
||||
"Skip _BUILD_TYPE flags if true.",
|
||||
"This is an internal flag used by the generators in "
|
||||
"CMake to tell CMake to skip the _BUILD_TYPE flags.");
|
||||
"CMake to tell CMake to skip the _BUILD_TYPE flags.",false,
|
||||
"Variables That Change Behavior");
|
||||
|
||||
cm->DefineProperty
|
||||
("CMAKE_MFC_FLAG", cmProperty::VARIABLE,
|
||||
|
@ -313,7 +354,8 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
|
|||
"dialog uses MFC and the CMakeLists.txt looks like this:\n"
|
||||
"ADD_DEFINITIONS(-D_AFXDLL)\n"
|
||||
"set(CMAKE_MFC_FLAG 2)\n"
|
||||
"add_executable(CMakeSetup WIN32 ${SRCS})\n");
|
||||
"add_executable(CMakeSetup WIN32 ${SRCS})\n",false,
|
||||
"Variables That Change Behavior");
|
||||
|
||||
|
||||
// Variables defined by CMake that describe the system
|
||||
|
@ -325,7 +367,8 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
|
|||
"and CMAKE_SYSTEM_VERSION, like this "
|
||||
"${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_VERSION}. "
|
||||
"If CMAKE_SYSTEM_VERSION is not set, then "
|
||||
"CMAKE_SYSTEM is the same as CMAKE_SYSTEM_NAME.");
|
||||
"CMAKE_SYSTEM is the same as CMAKE_SYSTEM_NAME.",false,
|
||||
"Variables That Describe the System");
|
||||
cm->DefineProperty
|
||||
("CMAKE_SYSTEM_NAME", cmProperty::VARIABLE,
|
||||
"Name of the OS CMake is running on.",
|
||||
|
@ -334,47 +377,55 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
|
|||
"have the uname command, this variable is set "
|
||||
"to the output of uname -s. Linux, Windows, "
|
||||
" and Darwin for Mac OSX are the values found "
|
||||
" on the big three operating systems." );
|
||||
" on the big three operating systems." ,false,
|
||||
"Variables That Describe the System");
|
||||
cm->DefineProperty
|
||||
("CMAKE_SYSTEM_PROCESSOR", cmProperty::VARIABLE,
|
||||
"The name of the CPU CMake is running on.",
|
||||
"On systems that support uname, this variable is "
|
||||
"set to the output of uname -p, on windows it is "
|
||||
"set to the value of the environment variable "
|
||||
"PROCESSOR_ARCHITECTURE");
|
||||
"PROCESSOR_ARCHITECTURE",false,
|
||||
"Variables That Describe the System");
|
||||
cm->DefineProperty
|
||||
("CMAKE_SYSTEM_VERSION", cmProperty::VARIABLE,
|
||||
"OS version.",
|
||||
"A numeric version string for the system, on "
|
||||
"systems that support uname, this variable is "
|
||||
"set to the output of uname -r. On other "
|
||||
"systems this is set to major-minor version numbers.");
|
||||
"systems this is set to major-minor version numbers.",false,
|
||||
"Variables That Describe the System");
|
||||
|
||||
cm->DefineProperty
|
||||
("APPLE", cmProperty::VARIABLE,
|
||||
"True if running on Mac OSX.",
|
||||
"Set to true on Mac OSX.");
|
||||
"Set to true on Mac OSX.",false,
|
||||
"Variables That Describe the System");
|
||||
|
||||
cm->DefineProperty
|
||||
("BORLAND", cmProperty::VARIABLE,
|
||||
"True of the borland compiler is being used.",
|
||||
"This is set to true if the Borland compiler is being used.");
|
||||
"This is set to true if the Borland compiler is being used.",false,
|
||||
"Variables That Describe the System");
|
||||
|
||||
cm->DefineProperty
|
||||
("CYGWIN", cmProperty::VARIABLE,
|
||||
"True for cygwin.",
|
||||
"Set to true when using CYGWIN.");
|
||||
"Set to true when using CYGWIN.",false,
|
||||
"Variables That Describe the System");
|
||||
|
||||
cm->DefineProperty
|
||||
("UNIX", cmProperty::VARIABLE,
|
||||
"True for UNIX and UNIX like operating systems.",
|
||||
"Set to true when the system is UNIX or UNIX like "
|
||||
"(i.e. APPLE and CYGWIN).");
|
||||
"(i.e. APPLE and CYGWIN).",false,
|
||||
"Variables That Describe the System");
|
||||
|
||||
cm->DefineProperty
|
||||
("WIN32", cmProperty::VARIABLE,
|
||||
"Tru on windows systems, including win64.",
|
||||
"Set to true when the system is Windows and on cygwin.");
|
||||
"Set to true when the system is Windows and on cygwin.",false,
|
||||
"Variables That Describe the System");
|
||||
|
||||
// Variables that affect the building of object files and
|
||||
// targets.
|
||||
|
@ -382,28 +433,33 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
|
|||
cm->DefineProperty
|
||||
("CMAKE_EXE_LINKER_FLAGS", cmProperty::VARIABLE,
|
||||
"Linker flags used to create executables.",
|
||||
"Flags used by the linker when creating an executable.");
|
||||
"Flags used by the linker when creating an executable.",false,
|
||||
"Variables that Control the Build");
|
||||
|
||||
cm->DefineProperty
|
||||
("CMAKE_EXE_LINKER_FLAGS_[CMAKE_BUILD_TYPE]", cmProperty::VARIABLE,
|
||||
"Flag used when linking an executable.",
|
||||
"Same as CMAKE_C_FLAGS_* but used by the linker "
|
||||
"when creating executables.");
|
||||
"when creating executables.",false,
|
||||
"Variables that Control the Build");
|
||||
cm->DefineProperty
|
||||
("CMAKE_LIBRARY_PATH_FLAG", cmProperty::VARIABLE,
|
||||
"The flag used to add a library search path to a compiler.",
|
||||
"The flag used to specify a library directory to the compiler. "
|
||||
"On most compilers this is \"-L\".");
|
||||
"On most compilers this is \"-L\".",false,
|
||||
"Variables that Control the Build");
|
||||
cm->DefineProperty
|
||||
("CMAKE_LINK_DEF_FILE_FLAG ", cmProperty::VARIABLE,
|
||||
"Linker flag used to specify a .def file for dll creation.",
|
||||
"The flag used to add a .def file when creating "
|
||||
"a dll on Windows, this is only defined on Windows.");
|
||||
"a dll on Windows, this is only defined on Windows.",false,
|
||||
"Variables that Control the Build");
|
||||
cm->DefineProperty
|
||||
("CMAKE_LINK_LIBRARY_FLAG", cmProperty::VARIABLE,
|
||||
"Flag used to link a library into an executable.",
|
||||
"The flag used to specify a library to link to an executable. "
|
||||
"On most compilers this is \"-l\".");
|
||||
"On most compilers this is \"-l\".",false,
|
||||
"Variables that Control the Build");
|
||||
cm->DefineProperty
|
||||
("CMAKE_USE_RELATIVE_PATHS", cmProperty::VARIABLE,
|
||||
"Use relative paths (May not work!).",
|
||||
|
@ -413,17 +469,20 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
|
|||
"projects, and relative paths are used when possible. "
|
||||
"In general, it is not possible to move CMake generated"
|
||||
" makefiles to a different location regardless "
|
||||
"of the value of this variable.");
|
||||
"of the value of this variable.",false,
|
||||
"Variables that Control the Build");
|
||||
cm->DefineProperty
|
||||
("EXECUTABLE_OUTPUT_PATH", cmProperty::VARIABLE,
|
||||
"Location for all executables in a project.",
|
||||
"If set, this is the directory where all executables "
|
||||
"built during the build process will be placed.");
|
||||
"built during the build process will be placed.",false,
|
||||
"Variables that Control the Build");
|
||||
cm->DefineProperty
|
||||
("LIBRARY_OUTPUT_PATH", cmProperty::VARIABLE,
|
||||
"Location for all libraries in a project.",
|
||||
"If set, this is the directory where all the libraries "
|
||||
"built during the build process will be placed.");
|
||||
"built during the build process will be placed.",false,
|
||||
"Variables that Control the Build");
|
||||
|
||||
// Variables defined when the a language is enabled These variables will
|
||||
// also be defined whenever CMake has loaded its support for compiling (LANG)
|
||||
|
@ -434,87 +493,96 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
|
|||
("CMAKE_<LANG>_COMPILER", cmProperty::VARIABLE,
|
||||
"The full path to the compiler for LANG.",
|
||||
"This is the command that will be used as the <LANG> compiler. "
|
||||
"Once set, you can not change this variable.");
|
||||
"Once set, you can not change this variable.",false,
|
||||
"Variables for Languages");
|
||||
|
||||
cm->DefineProperty
|
||||
("CMAKE_COMPILER_IS_GNU<LANG>", cmProperty::VARIABLE,
|
||||
"True if the compiler is GNU.",
|
||||
"If the selected <LANG> compiler is the GNU "
|
||||
"compiler then this is TRUE, if not it is FALSE. ");
|
||||
"compiler then this is TRUE, if not it is FALSE.",false,
|
||||
"Variables for Languages");
|
||||
|
||||
cm->DefineProperty
|
||||
("CMAKE_<LANG>_FLAGS_DEBUG", cmProperty::VARIABLE,
|
||||
"Flags for Debug build type or configuration.",
|
||||
"<LANG> flags used when CMAKE_BUILD_TYPE is Debug.");
|
||||
"<LANG> flags used when CMAKE_BUILD_TYPE is Debug.",false,
|
||||
"Variables for Languages");
|
||||
|
||||
cm->DefineProperty
|
||||
("CMAKE_<LANG>_FLAGS_MINSIZEREL", cmProperty::VARIABLE,
|
||||
"Flags for MinSizeRel build type or configuration.",
|
||||
"<LANG> flags used when CMAKE_BUILD_TYPE is MinSizeRel."
|
||||
"Short for minimum size release.");
|
||||
"Short for minimum size release.",false,
|
||||
"Variables for Languages");
|
||||
|
||||
cm->DefineProperty
|
||||
("CMAKE_<LANG>_FLAGS_RELEASE", cmProperty::VARIABLE,
|
||||
"Flags for Release build type or configuration.",
|
||||
"<LANG> flags used when CMAKE_BUILD_TYPE is Release");
|
||||
"<LANG> flags used when CMAKE_BUILD_TYPE is Release",false,
|
||||
"Variables for Languages");
|
||||
|
||||
cm->DefineProperty
|
||||
("CMAKE_<LANG>_FLAGS_RELWITHDEBINFO", cmProperty::VARIABLE,
|
||||
"Flags for RelWithDebInfo type or configuration.",
|
||||
"<LANG> flags used when CMAKE_BUILD_TYPE is RelWithDebInfo. "
|
||||
"Short for Release With Debug Information.");
|
||||
"Short for Release With Debug Information.",false,
|
||||
"Variables for Languages");
|
||||
|
||||
cm->DefineProperty
|
||||
("CMAKE_<LANG>_COMPILE_OBJECT", cmProperty::VARIABLE,
|
||||
"Rule variable to compile a single object file.",
|
||||
"This is a rule variable that tells CMake how to "
|
||||
"compile a single object file for for the language <LANG>.");
|
||||
"compile a single object file for for the language <LANG>.",false,
|
||||
"Variables for Languages");
|
||||
|
||||
cm->DefineProperty
|
||||
("CMAKE_<LANG>_CREATE_SHARED_LIBRARY", cmProperty::VARIABLE,
|
||||
"Rule variable to create a shared library.",
|
||||
"This is a rule variable that tells CMake how to "
|
||||
"create a shared library for the language <LANG>.");
|
||||
"create a shared library for the language <LANG>.",false,
|
||||
"Variables for Languages");
|
||||
|
||||
cm->DefineProperty
|
||||
("CMAKE_<LANG>_CREATE_SHARED_MODULE", cmProperty::VARIABLE,
|
||||
"Rule variable to create a shared module.",
|
||||
"This is a rule variable that tells CMake how to "
|
||||
"create a shared library for the language <LANG>.");
|
||||
"create a shared library for the language <LANG>.",false,
|
||||
"Variables for Languages");
|
||||
|
||||
cm->DefineProperty
|
||||
("CMAKE_<LANG>_CREATE_STATIC_LIBRARY", cmProperty::VARIABLE,
|
||||
"Rule variable to create a static library.",
|
||||
"This is a rule variable that tells CMake how "
|
||||
"to create a static library for the language <LANG>.");
|
||||
"to create a static library for the language <LANG>.",false,"Variables for Languages");
|
||||
|
||||
cm->DefineProperty
|
||||
("CMAKE_<LANG>_IGNORE_EXTENSIONS", cmProperty::VARIABLE,
|
||||
"File extensions that should be ignored by the build.",
|
||||
"This is a list of file extensions that may be "
|
||||
"part of a project for a given language but are not compiled. ");
|
||||
"part of a project for a given language but are not compiled. ",false,"Variables for Languages");
|
||||
|
||||
cm->DefineProperty
|
||||
("CMAKE_<LANG>_LINKER_PREFERENCE", cmProperty::VARIABLE,
|
||||
"Determine if a language should be used for linking.",
|
||||
"If this is \"Preferred\" then if there is a mixed "
|
||||
"language shared library or executable, then this "
|
||||
"languages linker command will be used.");
|
||||
"languages linker command will be used.",false,"Variables for Languages");
|
||||
|
||||
cm->DefineProperty
|
||||
("CMAKE_<LANG>_LINK_EXECUTABLE ", cmProperty::VARIABLE,
|
||||
"Rule variable to link and executable.",
|
||||
"Rule variable to link and executable for the given language.");
|
||||
"Rule variable to link and executable for the given language.",false,"Variables for Languages");
|
||||
|
||||
cm->DefineProperty
|
||||
("CMAKE_<LANG>_OUTPUT_EXTENSION", cmProperty::VARIABLE,
|
||||
"Extension for the output of a compile for a single file.",
|
||||
"This is the extension for an object file for "
|
||||
"the given <LANG>. For example .obj for C on Windows.");
|
||||
"the given <LANG>. For example .obj for C on Windows.",false,"Variables for Languages");
|
||||
|
||||
cm->DefineProperty
|
||||
("CMAKE_<LANG>_SOURCE_FILE_EXTENSIONS", cmProperty::VARIABLE,
|
||||
"Extensions of source files for the given language.",
|
||||
"This is the list of extensions for a "
|
||||
"given languages source files.");
|
||||
"given languages source files.",false,"Variables for Languages");
|
||||
}
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -24,7 +24,7 @@
|
|||
#include "cmDocumentationFormatterMan.h"
|
||||
#include "cmDocumentationFormatterText.h"
|
||||
#include "cmDocumentationFormatterUsage.h"
|
||||
|
||||
#include "cmDocumentationSection.h"
|
||||
|
||||
namespace cmsys
|
||||
{
|
||||
|
@ -62,78 +62,16 @@ public:
|
|||
/** Set the program name for standard document generation. */
|
||||
void SetName(const char* name);
|
||||
|
||||
/** Set the program name section for standard document
|
||||
* generation. */
|
||||
void SetNameSection(const cmDocumentationEntry*);
|
||||
|
||||
/** Set the program usage for standard document generation. */
|
||||
void SetUsageSection(const cmDocumentationEntry*);
|
||||
|
||||
/** Set the program description for standard document generation. */
|
||||
void SetDescriptionSection(const cmDocumentationEntry*);
|
||||
|
||||
/** Set the program options for standard document generation. */
|
||||
void SetOptionsSection(const cmDocumentationEntry*);
|
||||
|
||||
/** Set the listfile commands for standard document generation. */
|
||||
void SetCommandsSection(const cmDocumentationEntry*);
|
||||
|
||||
/** Set the listfile compat. commands for standard document generation. */
|
||||
void SetCompatCommandsSection(const cmDocumentationEntry*);
|
||||
|
||||
/** Set the global properties for standard document generation. */
|
||||
void SetPropertiesSection(const cmDocumentationEntry*,
|
||||
cmProperty::ScopeType type);
|
||||
|
||||
/** Set the generator descriptions for standard document generation. */
|
||||
void SetGeneratorsSection(const cmDocumentationEntry*);
|
||||
|
||||
/** Set the see-also list of references to the other tools. */
|
||||
void SetSeeAlsoList(const cmDocumentationEntry*);
|
||||
|
||||
// Low-level interface for custom documents:
|
||||
/** Internal class representing a section of the documentation.
|
||||
* Cares e.g. for the different section titles in the different
|
||||
* output formats.
|
||||
*/
|
||||
class cmSection
|
||||
{
|
||||
public:
|
||||
/** Create a cmSection, with a special name for man-output mode. */
|
||||
cmSection(const char* name, const char* manName)
|
||||
:Name(name), ManName(manName) {}
|
||||
|
||||
/** Has any content been added to this section or is it empty ? */
|
||||
bool IsEmpty() const
|
||||
{ return this->Entries.empty(); }
|
||||
|
||||
/** Clear contents. */
|
||||
void Clear()
|
||||
{ this->Entries.clear(); }
|
||||
|
||||
/** Return the name of this section for the given output form. */
|
||||
const char* GetName(Form form) const
|
||||
{ return (form==ManForm?this->ManName.c_str():this->Name.c_str()); }
|
||||
|
||||
/** Return a pointer to the first entry of this section. */
|
||||
const cmDocumentationEntry *GetEntries() const
|
||||
{ return this->Entries.empty()?&this->EmptySection:&this->Entries[0];}
|
||||
|
||||
/** Append an entry to this section. */
|
||||
void Append(const cmDocumentationEntry& entry)
|
||||
{ this->Entries.push_back(entry); }
|
||||
|
||||
/** Set the contents of this section. */
|
||||
void Set(const cmDocumentationEntry* header,
|
||||
const cmDocumentationEntry* section,
|
||||
const cmDocumentationEntry* footer);
|
||||
|
||||
private:
|
||||
std::string Name;
|
||||
std::string ManName;
|
||||
std::vector<cmDocumentationEntry> Entries;
|
||||
static const cmDocumentationEntry EmptySection;
|
||||
};
|
||||
/** Set a section of the documentation. Typical sections include Name,
|
||||
Usage, Description, Options, SeeAlso */
|
||||
void SetSection(const char *sectionName,
|
||||
cmDocumentationSection *section);
|
||||
void SetSection(const char *sectionName,
|
||||
std::vector<cmDocumentationEntry> &docs);
|
||||
void SetSection(const char *sectionName,
|
||||
const char *docs[][3]);
|
||||
void SetSections(std::map<std::string,cmDocumentationSection *>
|
||||
§ions);
|
||||
|
||||
/**
|
||||
* Print documentation in the given form. All previously added
|
||||
|
@ -148,14 +86,12 @@ public:
|
|||
void Print(std::ostream& os);
|
||||
|
||||
/**
|
||||
* Add a section of documentation. The cmDocumentationEntry pointer
|
||||
* should point at an array terminated by an all zero ({0,0,0})
|
||||
* entry. This can be used to generate custom help documents.
|
||||
* Add a section of documentation. This can be used to generate custom help
|
||||
* documents.
|
||||
*/
|
||||
void AddSection(const char* name, const cmDocumentationEntry* d);
|
||||
|
||||
/** Convenience function, does the same as above */
|
||||
void AddSection(const cmSection& section);
|
||||
void AddSectionToPrint(const char *section);
|
||||
|
||||
void SetSeeAlsoList(const char *data[][3]);
|
||||
|
||||
/** Clear all previously added sections of help. */
|
||||
void ClearSections();
|
||||
|
@ -172,16 +108,18 @@ private:
|
|||
void SetForm(Form f);
|
||||
|
||||
bool CreateSingleModule(const char* fname,
|
||||
const char* moduleName,
|
||||
cmSection &moduleSection);
|
||||
void CreateModuleDocsForDir(cmsys::Directory& dir, cmSection &moduleSection);
|
||||
const char* moduleName,
|
||||
cmDocumentationSection &sec);
|
||||
void CreateModuleDocsForDir(cmsys::Directory& dir,
|
||||
cmDocumentationSection &moduleSection);
|
||||
bool CreateModulesSection();
|
||||
bool CreateCustomModulesSection();
|
||||
void CreateFullDocumentation();
|
||||
|
||||
bool PrintCopyright(std::ostream& os);
|
||||
bool PrintVersion(std::ostream& os);
|
||||
bool PrintDocumentationList(std::ostream& os);
|
||||
bool PrintModuleList(std::ostream& os);
|
||||
bool PrintPropertyList(std::ostream& os);
|
||||
bool PrintDocumentationGeneric(std::ostream& os, const char *section);
|
||||
bool PrintDocumentationList(std::ostream& os, const char *section);
|
||||
bool PrintDocumentationSingle(std::ostream& os);
|
||||
bool PrintDocumentationSingleModule(std::ostream& os);
|
||||
bool PrintDocumentationSingleProperty(std::ostream& os);
|
||||
|
@ -193,52 +131,21 @@ private:
|
|||
bool PrintDocumentationCurrentCommands(std::ostream& os);
|
||||
bool PrintDocumentationCompatCommands(std::ostream& os);
|
||||
void PrintDocumentationCommand(std::ostream& os,
|
||||
const cmDocumentationEntry* entry);
|
||||
const cmDocumentationEntry &entry);
|
||||
|
||||
void CreateUsageDocumentation();
|
||||
void CreateFullDocumentation();
|
||||
void CreateCurrentCommandsDocumentation();
|
||||
void CreateCompatCommandsDocumentation();
|
||||
void CreateModulesDocumentation();
|
||||
void CreateCustomModulesDocumentation();
|
||||
void CreatePropertiesDocumentation();
|
||||
|
||||
void SetSection(const cmDocumentationEntry* header,
|
||||
const cmDocumentationEntry* section,
|
||||
const cmDocumentationEntry* footer,
|
||||
std::vector<cmDocumentationEntry>&);
|
||||
const char* GetNameString() const;
|
||||
bool IsOption(const char* arg) const;
|
||||
|
||||
std::string NameString;
|
||||
cmSection NameSection;
|
||||
cmSection UsageSection;
|
||||
cmSection DescriptionSection;
|
||||
cmSection OptionsSection;
|
||||
cmSection CommandsSection;
|
||||
cmSection CompatCommandsSection;
|
||||
cmSection ModulesSection;
|
||||
cmSection CustomModulesSection;
|
||||
cmSection GeneratorsSection;
|
||||
cmSection SeeAlsoSection;
|
||||
cmSection CopyrightSection;
|
||||
cmSection AuthorSection;
|
||||
cmSection GlobalPropertiesSection;
|
||||
cmSection DirectoryPropertiesSection;
|
||||
cmSection TargetPropertiesSection;
|
||||
cmSection TestPropertiesSection;
|
||||
cmSection SourceFilePropertiesSection;
|
||||
cmSection VariablePropertiesSection;
|
||||
cmSection CachedVariablePropertiesSection;
|
||||
std::map<cmProperty::ScopeType, cmSection*> PropertySections;
|
||||
std::map<std::string,cmDocumentationSection*> AllSections;
|
||||
|
||||
std::string SeeAlsoString;
|
||||
std::string CMakeRoot;
|
||||
std::string CMakeModulePath;
|
||||
std::set<std::string> ModulesFound;
|
||||
std::vector< char* > ModuleStrings;
|
||||
std::vector< const char* > Names;
|
||||
std::vector< const cmDocumentationEntry* > Sections;
|
||||
std::vector<const cmDocumentationSection *> PrintSections;
|
||||
std::string CurrentArgument;
|
||||
|
||||
struct RequestedHelpItem
|
||||
|
|
|
@ -39,6 +39,8 @@ public:
|
|||
enum Form { TextForm, HTMLForm, ManForm, UsageForm };
|
||||
};
|
||||
|
||||
class cmDocumentationSection;
|
||||
|
||||
/** Base class for printing the documentation in the various supported
|
||||
formats. */
|
||||
class cmDocumentationFormatter
|
||||
|
@ -53,7 +55,7 @@ public:
|
|||
virtual void PrintHeader(const char* /*name*/, std::ostream& /*os*/) {}
|
||||
virtual void PrintFooter(std::ostream& /*os*/) {}
|
||||
virtual void PrintSection(std::ostream& os,
|
||||
const cmDocumentationEntry* section,
|
||||
const cmDocumentationSection& section,
|
||||
const char* name) = 0;
|
||||
virtual void PrintPreformatted(std::ostream& os, const char* text) = 0;
|
||||
virtual void PrintParagraph(std::ostream& os, const char* text) = 0;
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
|
||||
=========================================================================*/
|
||||
#include "cmDocumentationFormatterHTML.h"
|
||||
#include "cmDocumentationSection.h"
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
static bool cmDocumentationIsHyperlinkChar(char c)
|
||||
|
@ -31,25 +32,21 @@ static bool cmDocumentationIsHyperlinkChar(char c)
|
|||
static void cmDocumentationPrintHTMLChar(std::ostream& os, char c)
|
||||
{
|
||||
// Use an escape sequence if necessary.
|
||||
static cmDocumentationEntry escapes[] =
|
||||
{
|
||||
{"<", "<", 0},
|
||||
{">", ">", 0},
|
||||
{"&", "&", 0},
|
||||
{"\n", "<br>", 0},
|
||||
{0,0,0}
|
||||
};
|
||||
for(const cmDocumentationEntry* op = escapes; op->name; ++op)
|
||||
{
|
||||
if(op->name[0] == c)
|
||||
{
|
||||
os << op->brief;
|
||||
return;
|
||||
}
|
||||
}
|
||||
std::map<char,std::string> escapes;
|
||||
escapes['<'] = "<";
|
||||
escapes['>'] = ">";
|
||||
escapes['&'] = "&";
|
||||
escapes['\n'] = "<br>";
|
||||
|
||||
// No escape sequence is needed.
|
||||
os << c;
|
||||
if (escapes.find(c) == escapes.end())
|
||||
{
|
||||
// No escape sequence is needed.
|
||||
os << c;
|
||||
return;
|
||||
}
|
||||
|
||||
os << escapes[c];
|
||||
return;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
|
@ -88,34 +85,38 @@ cmDocumentationFormatterHTML::cmDocumentationFormatterHTML()
|
|||
{
|
||||
}
|
||||
|
||||
void cmDocumentationFormatterHTML::PrintSection(std::ostream& os,
|
||||
const cmDocumentationEntry* section,
|
||||
const char* name)
|
||||
void cmDocumentationFormatterHTML
|
||||
::PrintSection(std::ostream& os,
|
||||
const cmDocumentationSection §ion,
|
||||
const char* name)
|
||||
{
|
||||
if(name)
|
||||
{
|
||||
os << "<h2>" << name << "</h2>\n";
|
||||
}
|
||||
if(!section) { return; }
|
||||
for(const cmDocumentationEntry* op = section; op->brief;)
|
||||
|
||||
const std::vector<cmDocumentationEntry> &entries =
|
||||
section.GetEntries();
|
||||
for(std::vector<cmDocumentationEntry>::const_iterator op = entries.begin();
|
||||
op != entries.end();)
|
||||
{
|
||||
if(op->name)
|
||||
if(op->Name.size())
|
||||
{
|
||||
os << "<ul>\n";
|
||||
for(;op->name;++op)
|
||||
for(;op != entries.end() && op->Name.size(); ++op)
|
||||
{
|
||||
os << " <li>\n";
|
||||
if(op->name[0])
|
||||
if(op->Name.size())
|
||||
{
|
||||
os << " <b><code>";
|
||||
this->PrintHTMLEscapes(os, op->name);
|
||||
this->PrintHTMLEscapes(os, op->Name.c_str());
|
||||
os << "</code></b>: ";
|
||||
}
|
||||
this->PrintHTMLEscapes(os, op->brief);
|
||||
if(op->full)
|
||||
this->PrintHTMLEscapes(os, op->Brief.c_str());
|
||||
if(op->Full.size())
|
||||
{
|
||||
os << "<br>\n ";
|
||||
this->PrintFormatted(os, op->full);
|
||||
this->PrintFormatted(os, op->Full.c_str());
|
||||
}
|
||||
os << "\n";
|
||||
os << " </li>\n";
|
||||
|
@ -124,7 +125,7 @@ void cmDocumentationFormatterHTML::PrintSection(std::ostream& os,
|
|||
}
|
||||
else
|
||||
{
|
||||
this->PrintFormatted(os, op->brief);
|
||||
this->PrintFormatted(os, op->Brief.c_str());
|
||||
os << "\n";
|
||||
++op;
|
||||
}
|
||||
|
|
|
@ -33,7 +33,7 @@ public:
|
|||
virtual void PrintHeader(const char* name, std::ostream& os);
|
||||
virtual void PrintFooter(std::ostream& os);
|
||||
virtual void PrintSection(std::ostream& os,
|
||||
const cmDocumentationEntry* section,
|
||||
const cmDocumentationSection& section,
|
||||
const char* name);
|
||||
virtual void PrintPreformatted(std::ostream& os, const char* text);
|
||||
virtual void PrintParagraph(std::ostream& os, const char* text);
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
=========================================================================*/
|
||||
|
||||
#include "cmDocumentationFormatterMan.h"
|
||||
#include "cmDocumentationSection.h"
|
||||
|
||||
#include "cmSystemTools.h"
|
||||
#include "cmVersion.h"
|
||||
|
@ -26,28 +27,32 @@ cmDocumentationFormatterMan::cmDocumentationFormatterMan()
|
|||
{
|
||||
}
|
||||
|
||||
void cmDocumentationFormatterMan::PrintSection(std::ostream& os,
|
||||
const cmDocumentationEntry* section,
|
||||
const char* name)
|
||||
void cmDocumentationFormatterMan
|
||||
::PrintSection(std::ostream& os,
|
||||
const cmDocumentationSection §ion,
|
||||
const char* name)
|
||||
{
|
||||
if(name)
|
||||
{
|
||||
os << ".SH " << name << "\n";
|
||||
}
|
||||
if(!section) { return; }
|
||||
for(const cmDocumentationEntry* op = section; op->brief; ++op)
|
||||
|
||||
const std::vector<cmDocumentationEntry> &entries =
|
||||
section.GetEntries();
|
||||
for(std::vector<cmDocumentationEntry>::const_iterator op = entries.begin();
|
||||
op != entries.end(); ++op)
|
||||
{
|
||||
if(op->name)
|
||||
if(op->Name.size())
|
||||
{
|
||||
os << ".TP\n"
|
||||
<< ".B " << (op->name[0]?op->name:"*") << "\n";
|
||||
this->PrintFormatted(os, op->brief);
|
||||
this->PrintFormatted(os, op->full);
|
||||
<< ".B " << (op->Name.size()?op->Name.c_str():"*") << "\n";
|
||||
this->PrintFormatted(os, op->Brief.c_str());
|
||||
this->PrintFormatted(os, op->Full.c_str());
|
||||
}
|
||||
else
|
||||
{
|
||||
os << ".PP\n";
|
||||
this->PrintFormatted(os, op->brief);
|
||||
this->PrintFormatted(os, op->Brief.c_str());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -32,7 +32,7 @@ public:
|
|||
|
||||
virtual void PrintHeader(const char* name, std::ostream& os);
|
||||
virtual void PrintSection(std::ostream& os,
|
||||
const cmDocumentationEntry* section,
|
||||
const cmDocumentationSection& section,
|
||||
const char* name);
|
||||
virtual void PrintPreformatted(std::ostream& os, const char* text);
|
||||
virtual void PrintParagraph(std::ostream& os, const char* text);
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
=========================================================================*/
|
||||
|
||||
#include "cmDocumentationFormatterText.h"
|
||||
#include "cmDocumentationSection.h"
|
||||
|
||||
cmDocumentationFormatterText::cmDocumentationFormatterText()
|
||||
:cmDocumentationFormatter()
|
||||
|
@ -24,9 +25,10 @@ cmDocumentationFormatterText::cmDocumentationFormatterText()
|
|||
{
|
||||
}
|
||||
|
||||
void cmDocumentationFormatterText::PrintSection(std::ostream& os,
|
||||
const cmDocumentationEntry* section,
|
||||
const char* name)
|
||||
void cmDocumentationFormatterText
|
||||
::PrintSection(std::ostream& os,
|
||||
const cmDocumentationSection §ion,
|
||||
const char* name)
|
||||
{
|
||||
if(name)
|
||||
{
|
||||
|
@ -35,27 +37,27 @@ void cmDocumentationFormatterText::PrintSection(std::ostream& os,
|
|||
"---------------------------------------\n";
|
||||
os << name << "\n\n";
|
||||
}
|
||||
if(!section) { return; }
|
||||
for(const cmDocumentationEntry* op = section; op->brief; ++op)
|
||||
|
||||
const std::vector<cmDocumentationEntry> &entries =
|
||||
section.GetEntries();
|
||||
for(std::vector<cmDocumentationEntry>::const_iterator op = entries.begin();
|
||||
op != entries.end(); ++op)
|
||||
{
|
||||
if(op->name)
|
||||
if(op->Name.size())
|
||||
{
|
||||
if(op->name[0])
|
||||
{
|
||||
os << " " << op->name << "\n";
|
||||
}
|
||||
os << " " << op->Name << "\n";
|
||||
this->TextIndent = " ";
|
||||
this->PrintFormatted(os, op->brief);
|
||||
if(op->full)
|
||||
this->PrintFormatted(os, op->Brief.c_str());
|
||||
if(op->Full.size())
|
||||
{
|
||||
os << "\n";
|
||||
this->PrintFormatted(os, op->full);
|
||||
this->PrintFormatted(os, op->Full.c_str());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
this->TextIndent = "";
|
||||
this->PrintFormatted(os, op->brief);
|
||||
this->PrintFormatted(os, op->Brief.c_str());
|
||||
}
|
||||
os << "\n";
|
||||
}
|
||||
|
|
|
@ -31,7 +31,7 @@ public:
|
|||
{ return cmDocumentationEnums::TextForm;}
|
||||
|
||||
virtual void PrintSection(std::ostream& os,
|
||||
const cmDocumentationEntry* section,
|
||||
const cmDocumentationSection& section,
|
||||
const char* name);
|
||||
virtual void PrintPreformatted(std::ostream& os, const char* text);
|
||||
virtual void PrintParagraph(std::ostream& os, const char* text);
|
||||
|
|
|
@ -16,46 +16,51 @@
|
|||
=========================================================================*/
|
||||
|
||||
#include "cmDocumentationFormatterUsage.h"
|
||||
#include "cmDocumentationSection.h"
|
||||
|
||||
cmDocumentationFormatterUsage::cmDocumentationFormatterUsage()
|
||||
:cmDocumentationFormatterText()
|
||||
{
|
||||
}
|
||||
|
||||
void cmDocumentationFormatterUsage::PrintSection(std::ostream& os,
|
||||
const cmDocumentationEntry* section,
|
||||
const char* name)
|
||||
void cmDocumentationFormatterUsage
|
||||
::PrintSection(std::ostream& os,
|
||||
const cmDocumentationSection §ion,
|
||||
const char* name)
|
||||
{
|
||||
if(name)
|
||||
{
|
||||
os << name << "\n";
|
||||
}
|
||||
if(!section) { return; }
|
||||
for(const cmDocumentationEntry* op = section; op->brief; ++op)
|
||||
|
||||
const std::vector<cmDocumentationEntry> &entries =
|
||||
section.GetEntries();
|
||||
for(std::vector<cmDocumentationEntry>::const_iterator op = entries.begin();
|
||||
op != entries.end(); ++op)
|
||||
{
|
||||
if(op->name)
|
||||
if(op->Name.size())
|
||||
{
|
||||
os << " " << op->name;
|
||||
os << " " << op->Name;
|
||||
this->TextIndent = " ";
|
||||
int align = static_cast<int>(strlen(this->TextIndent))-4;
|
||||
for(int i = static_cast<int>(strlen(op->name)); i < align; ++i)
|
||||
for(int i = static_cast<int>(op->Name.size()); i < align; ++i)
|
||||
{
|
||||
os << " ";
|
||||
}
|
||||
if ( strlen(op->name) > strlen(this->TextIndent)-4 )
|
||||
if (op->Name.size() > strlen(this->TextIndent)-4 )
|
||||
{
|
||||
os << "\n";
|
||||
os.write(this->TextIndent, strlen(this->TextIndent)-2);
|
||||
}
|
||||
os << "= ";
|
||||
this->PrintColumn(os, op->brief);
|
||||
this->PrintColumn(os, op->Brief.c_str());
|
||||
os << "\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
os << "\n";
|
||||
this->TextIndent = "";
|
||||
this->PrintFormatted(os, op->brief);
|
||||
this->PrintFormatted(os, op->Brief.c_str());
|
||||
}
|
||||
}
|
||||
os << "\n";
|
||||
|
|
|
@ -29,7 +29,7 @@ public:
|
|||
{ return cmDocumentationEnums::UsageForm;}
|
||||
|
||||
virtual void PrintSection(std::ostream& os,
|
||||
const cmDocumentationEntry* section,
|
||||
const cmDocumentationSection& section,
|
||||
const char* name);
|
||||
};
|
||||
|
||||
|
|
|
@ -0,0 +1,71 @@
|
|||
/*=========================================================================
|
||||
|
||||
Program: CMake - Cross-Platform Makefile Generator
|
||||
Module: $RCSfile$
|
||||
Language: C++
|
||||
Date: $Date$
|
||||
Version: $Revision$
|
||||
|
||||
Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved.
|
||||
See Copyright.txt or http://www.cmake.org/HTML/Copyright.html 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.
|
||||
|
||||
=========================================================================*/
|
||||
#include "cmDocumentationSection.h"
|
||||
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
void cmDocumentationSection::Append(const char *data[][3])
|
||||
{
|
||||
int i = 0;
|
||||
while(data[i][1])
|
||||
{
|
||||
this->Entries.push_back(cmDocumentationEntry(data[i][0],
|
||||
data[i][1],
|
||||
data[i][2]));
|
||||
data += 1;
|
||||
}
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
void cmDocumentationSection::Append(const char *n, const char *b,
|
||||
const char *f)
|
||||
{
|
||||
this->Entries.push_back(cmDocumentationEntry(n,b,f));
|
||||
}
|
||||
|
||||
#if 0
|
||||
//----------------------------------------------------------------------------
|
||||
void cmDocumentationSection::Set(const cmDocumentationEntry* header,
|
||||
const cmDocumentationEntry* section,
|
||||
const cmDocumentationEntry* footer)
|
||||
{
|
||||
this->Entries.erase(this->Entries.begin(), this->Entries.end());
|
||||
if(header)
|
||||
{
|
||||
for(const cmDocumentationEntry* op = header; op->brief; ++op)
|
||||
{
|
||||
this->Entries.push_back(*op);
|
||||
}
|
||||
}
|
||||
if(section)
|
||||
{
|
||||
for(const cmDocumentationEntry* op = section; op->brief; ++op)
|
||||
{
|
||||
this->Entries.push_back(*op);
|
||||
}
|
||||
}
|
||||
if(footer)
|
||||
{
|
||||
for(const cmDocumentationEntry* op = footer; op->brief; ++op)
|
||||
{
|
||||
this->Entries.push_back(*op);
|
||||
}
|
||||
}
|
||||
cmDocumentationEntry empty = {0,0,0};
|
||||
this->Entries.push_back(empty);
|
||||
}
|
||||
#endif
|
|
@ -0,0 +1,71 @@
|
|||
/*=========================================================================
|
||||
|
||||
Program: CMake - Cross-Platform Makefile Generator
|
||||
Module: $RCSfile$
|
||||
Language: C++
|
||||
Date: $Date$
|
||||
Version: $Revision$
|
||||
|
||||
Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved.
|
||||
See Copyright.txt or http://www.cmake.org/HTML/Copyright.html 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 _cmDocumentationSection_h
|
||||
#define _cmDocumentationSection_h
|
||||
|
||||
#include "cmStandardIncludes.h"
|
||||
#include "cmDocumentationFormatter.h"
|
||||
|
||||
// Low-level interface for custom documents:
|
||||
/** Internal class representing a section of the documentation.
|
||||
* Cares e.g. for the different section titles in the different
|
||||
* output formats.
|
||||
*/
|
||||
class cmDocumentationSection
|
||||
{
|
||||
public:
|
||||
/** Create a cmSection, with a special name for man-output mode. */
|
||||
cmDocumentationSection(const char* name, const char* manName)
|
||||
:Name(name), ManName(manName) {}
|
||||
|
||||
/** Has any content been added to this section or is it empty ? */
|
||||
bool IsEmpty() const { return this->Entries.empty(); }
|
||||
|
||||
/** Clear contents. */
|
||||
void Clear() { this->Entries.clear(); }
|
||||
|
||||
/** Return the name of this section for the given output form. */
|
||||
const char* GetName(cmDocumentationEnums::Form form) const
|
||||
{ return (form==cmDocumentationEnums::ManForm ?
|
||||
this->ManName.c_str() : this->Name.c_str()); }
|
||||
|
||||
/** Return a pointer to the first entry of this section. */
|
||||
const std::vector<cmDocumentationEntry> &GetEntries() const
|
||||
{ return this->Entries; }
|
||||
|
||||
/** Append an entry to this section. */
|
||||
void Append(const cmDocumentationEntry& entry)
|
||||
{ this->Entries.push_back(entry); }
|
||||
void Append(const std::vector<cmDocumentationEntry> &entries)
|
||||
{ this->Entries.insert(this->Entries.end(),entries.begin(),entries.end()); }
|
||||
|
||||
/** Append an entry to this section using NULL terminated chars */
|
||||
void Append(const char *[][3]);
|
||||
void Append(const char *n, const char *b, const char *f);
|
||||
|
||||
/** Set the contents of this section. */
|
||||
// void Set(const std::vector<cmDocumentationEntry> header,
|
||||
// const std::vector<cmDocumentationEntry> section,
|
||||
// const std::vector<cmDocumentationEntry> footer);
|
||||
|
||||
private:
|
||||
std::string Name;
|
||||
std::string ManName;
|
||||
std::vector<cmDocumentationEntry> Entries;
|
||||
};
|
||||
|
||||
#endif
|
|
@ -23,7 +23,7 @@
|
|||
#include "cmVersion.h"
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
static const cmDocumentationEntry cmDocumentationName[] =
|
||||
static const char *cmDocumentationName[][3] =
|
||||
{
|
||||
{0,
|
||||
" DumpDocumentation - Dump documentation for CMake.", 0},
|
||||
|
@ -31,7 +31,7 @@ static const cmDocumentationEntry cmDocumentationName[] =
|
|||
};
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
static const cmDocumentationEntry cmDocumentationUsage[] =
|
||||
static const char *cmDocumentationUsage[][3] =
|
||||
{
|
||||
{0,
|
||||
" DumpDocumentation [filename]", 0},
|
||||
|
@ -39,7 +39,7 @@ static const cmDocumentationEntry cmDocumentationUsage[] =
|
|||
};
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
static const cmDocumentationEntry cmDocumentationDescription[] =
|
||||
static const char *cmDocumentationDescription[][3] =
|
||||
{
|
||||
{0,
|
||||
"The \"DumpDocumentation\" executable is only available in the build "
|
||||
|
@ -49,7 +49,7 @@ static const cmDocumentationEntry cmDocumentationDescription[] =
|
|||
};
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
static const cmDocumentationEntry cmDocumentationOptions[] =
|
||||
static const char *cmDocumentationOptions[][3] =
|
||||
{
|
||||
{"--all-for-coverage",
|
||||
"Dump all documentation to stdout. For testing.", 0},
|
||||
|
@ -74,7 +74,7 @@ int DumpHTML(const char* outname)
|
|||
cmOStringStream str;
|
||||
str << "Documentation for Commands of CMake "
|
||||
<< cmVersion::GetCMakeVersion();
|
||||
doc.AddSection(str.str().c_str(), &commands[0]);
|
||||
doc.SetSection(str.str().c_str(), commands);
|
||||
doc.Print(cmDocumentation::HTMLForm, fout);
|
||||
|
||||
return 0;
|
||||
|
@ -88,12 +88,12 @@ int DumpForCoverageToStream(std::ostream& out)
|
|||
std::vector<cmDocumentationEntry> generators;
|
||||
cmi.GetCommandDocumentation(commands);
|
||||
cmi.GetGeneratorDocumentation(generators);
|
||||
doc.SetNameSection(cmDocumentationName);
|
||||
doc.SetUsageSection(cmDocumentationUsage);
|
||||
doc.SetDescriptionSection(cmDocumentationDescription);
|
||||
doc.SetOptionsSection(cmDocumentationOptions);
|
||||
doc.SetCommandsSection(&commands[0]);
|
||||
doc.SetGeneratorsSection(&generators[0]);
|
||||
doc.SetSection("Name",cmDocumentationName);
|
||||
doc.SetSection("Usage",cmDocumentationUsage);
|
||||
doc.SetSection("Description",cmDocumentationDescription);
|
||||
doc.SetSection("options",cmDocumentationOptions);
|
||||
doc.SetSection("Commands",commands);
|
||||
doc.SetSection("Generators",generators);
|
||||
doc.PrintDocumentation(cmDocumentation::Usage, out);
|
||||
doc.PrintDocumentation(cmDocumentation::Full, out);
|
||||
return 0;
|
||||
|
|
|
@ -45,9 +45,9 @@ http://forums.codeblocks.org/index.php/topic,6789.0.html
|
|||
void cmExtraCodeBlocksGenerator
|
||||
::GetDocumentation(cmDocumentationEntry& entry, const char*) const
|
||||
{
|
||||
entry.name = this->GetName();
|
||||
entry.brief = "Generates CodeBlocks project files.";
|
||||
entry.full =
|
||||
entry.Name = this->GetName();
|
||||
entry.Brief = "Generates CodeBlocks project files.";
|
||||
entry.Full =
|
||||
"Project files for CodeBlocks will be created in the top directory "
|
||||
"and in every subdirectory which features a CMakeLists.txt file "
|
||||
"containing a PROJECT() call. "
|
||||
|
|
|
@ -45,9 +45,9 @@ cmExtraEclipseCDT4Generator
|
|||
void cmExtraEclipseCDT4Generator
|
||||
::GetDocumentation(cmDocumentationEntry& entry, const char*) const
|
||||
{
|
||||
entry.name = this->GetName();
|
||||
entry.brief = "Generates Eclipse CDT 4.0 project files.";
|
||||
entry.full =
|
||||
entry.Name = this->GetName();
|
||||
entry.Brief = "Generates Eclipse CDT 4.0 project files.";
|
||||
entry.Full =
|
||||
"Project files for Eclipse will be created in the top directory "
|
||||
"and will have a linked resource to every subdirectory which "
|
||||
"features a CMakeLists.txt file containing a PROJECT() call."
|
||||
|
|
|
@ -62,7 +62,7 @@ cmLocalGenerator *cmGlobalBorlandMakefileGenerator::CreateLocalGenerator()
|
|||
void cmGlobalBorlandMakefileGenerator
|
||||
::GetDocumentation(cmDocumentationEntry& entry) const
|
||||
{
|
||||
entry.name = this->GetName();
|
||||
entry.brief = "Generates Borland makefiles.";
|
||||
entry.full = "";
|
||||
entry.Name = this->GetName();
|
||||
entry.Brief = "Generates Borland makefiles.";
|
||||
entry.Full = "";
|
||||
}
|
||||
|
|
|
@ -1140,9 +1140,9 @@ void cmGlobalGenerator::EnableLanguagesFromGenerator(cmGlobalGenerator *gen )
|
|||
//----------------------------------------------------------------------------
|
||||
void cmGlobalGenerator::GetDocumentation(cmDocumentationEntry& entry) const
|
||||
{
|
||||
entry.name = this->GetName();
|
||||
entry.brief = "";
|
||||
entry.full = "";
|
||||
entry.Name = this->GetName();
|
||||
entry.Brief = "";
|
||||
entry.Full = "";
|
||||
}
|
||||
|
||||
bool cmGlobalGenerator::IsExcluded(cmLocalGenerator* root,
|
||||
|
|
|
@ -103,8 +103,8 @@ cmLocalGenerator *cmGlobalMSYSMakefileGenerator::CreateLocalGenerator()
|
|||
void cmGlobalMSYSMakefileGenerator
|
||||
::GetDocumentation(cmDocumentationEntry& entry) const
|
||||
{
|
||||
entry.name = this->GetName();
|
||||
entry.brief = "Generates MSYS makefiles.";
|
||||
entry.full = "The makefiles use /bin/sh as the shell. "
|
||||
entry.Name = this->GetName();
|
||||
entry.Brief = "Generates MSYS makefiles.";
|
||||
entry.Full = "The makefiles use /bin/sh as the shell. "
|
||||
"They require msys to be installed on the machine.";
|
||||
}
|
||||
|
|
|
@ -83,8 +83,8 @@ cmLocalGenerator *cmGlobalMinGWMakefileGenerator::CreateLocalGenerator()
|
|||
void cmGlobalMinGWMakefileGenerator
|
||||
::GetDocumentation(cmDocumentationEntry& entry) const
|
||||
{
|
||||
entry.name = this->GetName();
|
||||
entry.brief = "Generates a make file for use with mingw32-make.";
|
||||
entry.full = "The makefiles generated use cmd.exe as the shell. "
|
||||
entry.Name = this->GetName();
|
||||
entry.Brief = "Generates a make file for use with mingw32-make.";
|
||||
entry.Full = "The makefiles generated use cmd.exe as the shell. "
|
||||
"They do not require msys or a unix shell.";
|
||||
}
|
||||
|
|
|
@ -55,7 +55,7 @@ cmLocalGenerator *cmGlobalNMakeMakefileGenerator::CreateLocalGenerator()
|
|||
void cmGlobalNMakeMakefileGenerator
|
||||
::GetDocumentation(cmDocumentationEntry& entry) const
|
||||
{
|
||||
entry.name = this->GetName();
|
||||
entry.brief = "Generates NMake makefiles.";
|
||||
entry.full = "";
|
||||
entry.Name = this->GetName();
|
||||
entry.Brief = "Generates NMake makefiles.";
|
||||
entry.Full = "";
|
||||
}
|
||||
|
|
|
@ -104,9 +104,9 @@ cmLocalGenerator *cmGlobalUnixMakefileGenerator3::CreateLocalGenerator()
|
|||
void cmGlobalUnixMakefileGenerator3
|
||||
::GetDocumentation(cmDocumentationEntry& entry) const
|
||||
{
|
||||
entry.name = this->GetName();
|
||||
entry.brief = "Generates standard UNIX makefiles.";
|
||||
entry.full =
|
||||
entry.Name = this->GetName();
|
||||
entry.Brief = "Generates standard UNIX makefiles.";
|
||||
entry.Full =
|
||||
"A hierarchy of UNIX makefiles is generated into the build tree. Any "
|
||||
"standard UNIX-style make program can build the project through the "
|
||||
"default make target. A \"make install\" target is also provided.";
|
||||
|
|
|
@ -483,9 +483,9 @@ void cmGlobalVisualStudio6Generator::WriteDSWHeader(std::ostream& fout)
|
|||
void cmGlobalVisualStudio6Generator
|
||||
::GetDocumentation(cmDocumentationEntry& entry) const
|
||||
{
|
||||
entry.name = this->GetName();
|
||||
entry.brief = "Generates Visual Studio 6 project files.";
|
||||
entry.full = "";
|
||||
entry.Name = this->GetName();
|
||||
entry.Brief = "Generates Visual Studio 6 project files.";
|
||||
entry.Full = "";
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
|
|
|
@ -446,7 +446,7 @@ void cmGlobalVisualStudio71Generator::WriteSLNHeader(std::ostream& fout)
|
|||
void cmGlobalVisualStudio71Generator
|
||||
::GetDocumentation(cmDocumentationEntry& entry) const
|
||||
{
|
||||
entry.name = this->GetName();
|
||||
entry.brief = "Generates Visual Studio .NET 2003 project files.";
|
||||
entry.full = "";
|
||||
entry.Name = this->GetName();
|
||||
entry.Brief = "Generates Visual Studio .NET 2003 project files.";
|
||||
entry.Full = "";
|
||||
}
|
||||
|
|
|
@ -733,9 +733,9 @@ std::vector<std::string> *cmGlobalVisualStudio7Generator::GetConfigurations()
|
|||
void cmGlobalVisualStudio7Generator
|
||||
::GetDocumentation(cmDocumentationEntry& entry) const
|
||||
{
|
||||
entry.name = this->GetName();
|
||||
entry.brief = "Generates Visual Studio .NET 2002 project files.";
|
||||
entry.full = "";
|
||||
entry.Name = this->GetName();
|
||||
entry.Brief = "Generates Visual Studio .NET 2002 project files.";
|
||||
entry.Full = "";
|
||||
}
|
||||
|
||||
// make sure "special" targets have GUID's
|
||||
|
|
|
@ -53,9 +53,9 @@ void cmGlobalVisualStudio8Generator::WriteSLNHeader(std::ostream& fout)
|
|||
void cmGlobalVisualStudio8Generator
|
||||
::GetDocumentation(cmDocumentationEntry& entry) const
|
||||
{
|
||||
entry.name = this->GetName();
|
||||
entry.brief = "Generates Visual Studio .NET 2005 project files.";
|
||||
entry.full = "";
|
||||
entry.Name = this->GetName();
|
||||
entry.Brief = "Generates Visual Studio .NET 2005 project files.";
|
||||
entry.Full = "";
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
|
|
|
@ -42,9 +42,9 @@ cmLocalGenerator *cmGlobalVisualStudio8Win64Generator::CreateLocalGenerator()
|
|||
void cmGlobalVisualStudio8Win64Generator
|
||||
::GetDocumentation(cmDocumentationEntry& entry) const
|
||||
{
|
||||
entry.name = this->GetName();
|
||||
entry.brief = "Generates Visual Studio .NET 2005 Win64 project files.";
|
||||
entry.full = "";
|
||||
entry.Name = this->GetName();
|
||||
entry.Brief = "Generates Visual Studio .NET 2005 Win64 project files.";
|
||||
entry.Full = "";
|
||||
}
|
||||
|
||||
void cmGlobalVisualStudio8Win64Generator
|
||||
|
|
|
@ -48,9 +48,9 @@ cmLocalGenerator *cmGlobalVisualStudio9Generator::CreateLocalGenerator()
|
|||
void cmGlobalVisualStudio9Generator
|
||||
::GetDocumentation(cmDocumentationEntry& entry) const
|
||||
{
|
||||
entry.name = this->GetName();
|
||||
entry.brief = "Generates Visual Studio 9 2008 project files.";
|
||||
entry.full = "";
|
||||
entry.Name = this->GetName();
|
||||
entry.Brief = "Generates Visual Studio 9 2008 project files.";
|
||||
entry.Full = "";
|
||||
}
|
||||
|
||||
void cmGlobalVisualStudio9Generator
|
||||
|
|
|
@ -65,7 +65,7 @@ cmLocalGenerator *cmGlobalWatcomWMakeGenerator::CreateLocalGenerator()
|
|||
void cmGlobalWatcomWMakeGenerator
|
||||
::GetDocumentation(cmDocumentationEntry& entry) const
|
||||
{
|
||||
entry.name = this->GetName();
|
||||
entry.brief = "Generates Watcom WMake makefiles.";
|
||||
entry.full = "";
|
||||
entry.Name = this->GetName();
|
||||
entry.Brief = "Generates Watcom WMake makefiles.";
|
||||
entry.Full = "";
|
||||
}
|
||||
|
|
|
@ -1215,6 +1215,17 @@ void cmMakefile::AddDefinition(const char* name, const char* value)
|
|||
{
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef CMAKE_STRICT
|
||||
if (!this->CMakeInstance->IsPropertyDefined(name,cmProperty::VARIABLE))
|
||||
{
|
||||
std::string msg = "Variable ";
|
||||
msg += name;
|
||||
msg += " set yet not defined!";
|
||||
cmSystemTools::Error(msg.c_str());
|
||||
}
|
||||
#endif
|
||||
|
||||
this->TemporaryDefinitionKey = name;
|
||||
this->Definitions[this->TemporaryDefinitionKey] = value;
|
||||
|
||||
|
@ -1669,6 +1680,15 @@ bool cmMakefile::IsDefinitionSet(const char* name) const
|
|||
|
||||
const char* cmMakefile::GetDefinition(const char* name) const
|
||||
{
|
||||
#ifdef CMAKE_STRICT
|
||||
if (!this->CMakeInstance->IsPropertyDefined(name,cmProperty::VARIABLE))
|
||||
{
|
||||
std::string msg = "Variable ";
|
||||
msg += name;
|
||||
msg += " queried yet undefined!";
|
||||
cmSystemTools::Error(msg.c_str());
|
||||
}
|
||||
#endif
|
||||
const char* def = 0;
|
||||
DefinitionMap::const_iterator pos = this->Definitions.find(name);
|
||||
if(pos != this->Definitions.end())
|
||||
|
|
|
@ -20,10 +20,9 @@
|
|||
cmDocumentationEntry cmPropertyDefinition::GetDocumentation() const
|
||||
{
|
||||
cmDocumentationEntry e;
|
||||
e.name = this->Name.c_str();
|
||||
e.brief =
|
||||
this->ShortDescription.size() ? this->ShortDescription.c_str() : 0;
|
||||
e.full = this->FullDescription.size() ? this->FullDescription.c_str() : 0;
|
||||
e.Name = this->Name;
|
||||
e.Brief = this->ShortDescription;
|
||||
e.Full = this->FullDescription;
|
||||
return e;
|
||||
}
|
||||
|
||||
|
@ -31,6 +30,7 @@ void cmPropertyDefinition
|
|||
::DefineProperty(const char *name, cmProperty::ScopeType scope,
|
||||
const char *shortDescription,
|
||||
const char *fullDescription,
|
||||
const char *sec,
|
||||
bool chain)
|
||||
{
|
||||
this->Name = name;
|
||||
|
@ -44,5 +44,9 @@ void cmPropertyDefinition
|
|||
{
|
||||
this->FullDescription = fullDescription;
|
||||
}
|
||||
if (sec)
|
||||
{
|
||||
this->DocumentationSection = sec;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -26,6 +26,7 @@ public:
|
|||
void DefineProperty(const char *name, cmProperty::ScopeType scope,
|
||||
const char *ShortDescription,
|
||||
const char *FullDescription,
|
||||
const char *DocumentationSection,
|
||||
bool chained);
|
||||
|
||||
// get the documentation string
|
||||
|
@ -37,10 +38,19 @@ public:
|
|||
// is it chained?
|
||||
bool IsChained() {return this->Chained; };
|
||||
|
||||
// Get the section if any
|
||||
const std::string &GetDocumentationSection() const {
|
||||
return this->DocumentationSection; };
|
||||
|
||||
// get the scope
|
||||
cmProperty::ScopeType GetScope() const {
|
||||
return this->Scope; };
|
||||
|
||||
protected:
|
||||
std::string Name;
|
||||
std::string ShortDescription;
|
||||
std::string FullDescription;
|
||||
std::string DocumentationSection;
|
||||
cmProperty::ScopeType Scope;
|
||||
bool Chained;
|
||||
};
|
||||
|
|
|
@ -16,12 +16,13 @@
|
|||
=========================================================================*/
|
||||
#include "cmPropertyDefinitionMap.h"
|
||||
#include "cmSystemTools.h"
|
||||
|
||||
#include "cmDocumentationSection.h"
|
||||
|
||||
void cmPropertyDefinitionMap
|
||||
::DefineProperty(const char *name, cmProperty::ScopeType scope,
|
||||
const char *ShortDescription,
|
||||
const char *FullDescription,
|
||||
const char *DocumentationSection,
|
||||
bool chain)
|
||||
{
|
||||
if (!name)
|
||||
|
@ -34,21 +35,59 @@ void cmPropertyDefinitionMap
|
|||
if (it == this->end())
|
||||
{
|
||||
prop = &(*this)[name];
|
||||
prop->DefineProperty(name,scope,ShortDescription, FullDescription, chain);
|
||||
prop->DefineProperty(name,scope,ShortDescription, FullDescription,
|
||||
DocumentationSection, chain);
|
||||
}
|
||||
}
|
||||
|
||||
void cmPropertyDefinitionMap
|
||||
::GetPropertiesDocumentation(std::vector<cmDocumentationEntry>& v) const
|
||||
::GetPropertiesDocumentation(std::map<std::string,
|
||||
cmDocumentationSection *>& v) const
|
||||
{
|
||||
for(cmPropertyDefinitionMap::const_iterator j = this->begin();
|
||||
j != this->end(); ++j)
|
||||
{
|
||||
cmDocumentationEntry e = j->second.GetDocumentation();
|
||||
if (e.brief)
|
||||
// add a section if needed
|
||||
std::string secName = j->second.GetDocumentationSection();
|
||||
// if a section was not specified then use the scope
|
||||
if (!secName.size())
|
||||
{
|
||||
v.push_back(e);
|
||||
switch (j->second.GetScope())
|
||||
{
|
||||
case cmProperty::GLOBAL:
|
||||
secName = "Properties of Global Scope";
|
||||
break;
|
||||
case cmProperty::TARGET:
|
||||
secName = "Properties on Targets";
|
||||
break;
|
||||
case cmProperty::SOURCE_FILE:
|
||||
secName = "Properties on Source Files";
|
||||
break;
|
||||
case cmProperty::DIRECTORY:
|
||||
secName = "Properties on Directories";
|
||||
break;
|
||||
case cmProperty::TEST:
|
||||
secName = "Properties on Tests";
|
||||
break;
|
||||
case cmProperty::VARIABLE:
|
||||
secName = "Variables";
|
||||
break;
|
||||
case cmProperty::CACHED_VARIABLE:
|
||||
secName = "Cached Variables";
|
||||
break;
|
||||
default:
|
||||
secName = "Properties of Unknown Scope";
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!v[secName])
|
||||
{
|
||||
v[secName] = new
|
||||
cmDocumentationSection(secName.c_str(),
|
||||
cmSystemTools::UpperCase(secName).c_str());
|
||||
}
|
||||
cmDocumentationEntry e = j->second.GetDocumentation();
|
||||
v[secName]->Append(e);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -19,6 +19,8 @@
|
|||
|
||||
#include "cmPropertyDefinition.h"
|
||||
|
||||
class cmDocumentationSection;
|
||||
|
||||
class cmPropertyDefinitionMap :
|
||||
public std::map<cmStdString,cmPropertyDefinition>
|
||||
{
|
||||
|
@ -27,6 +29,7 @@ public:
|
|||
void DefineProperty(const char *name, cmProperty::ScopeType scope,
|
||||
const char *ShortDescription,
|
||||
const char *FullDescription,
|
||||
const char *DocumentaitonSection,
|
||||
bool chain);
|
||||
|
||||
// has a named property been defined
|
||||
|
@ -35,7 +38,8 @@ public:
|
|||
// is a named property set to chain
|
||||
bool IsPropertyChained(const char *name);
|
||||
|
||||
void GetPropertiesDocumentation(std::vector<cmDocumentationEntry>& v) const;
|
||||
void GetPropertiesDocumentation(std::map<std::string,
|
||||
cmDocumentationSection *>&) const;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -316,9 +316,16 @@ extern void operator << (std::ostream&, const cmOStringStream&);
|
|||
/** Standard documentation entry for cmDocumentation's formatting. */
|
||||
struct cmDocumentationEntry
|
||||
{
|
||||
const char* name;
|
||||
const char* brief;
|
||||
const char* full;
|
||||
std::string Name;
|
||||
std::string Brief;
|
||||
std::string Full;
|
||||
cmDocumentationEntry(){};
|
||||
cmDocumentationEntry(const char *doc[3])
|
||||
{ if (doc[0]) this->Name = doc[0];
|
||||
if (doc[1]) this->Brief = doc[1];
|
||||
if (doc[2]) this->Full = doc[2]; };
|
||||
cmDocumentationEntry(const char *n, const char *b, const char *f)
|
||||
{ if (n) this->Name = n; if (b) this->Brief = b; if (f) this->Full = f; };
|
||||
};
|
||||
|
||||
/** Data structure to represent a single command line. */
|
||||
|
|
|
@ -2249,31 +2249,29 @@ void cmake::GetCommandDocumentation(std::vector<cmDocumentationEntry>& v,
|
|||
for(RegisteredCommandsMap::const_iterator j = this->Commands.begin();
|
||||
j != this->Commands.end(); ++j)
|
||||
{
|
||||
if ((( withCompatCommands == false) && ( (*j).second->IsDiscouraged()))
|
||||
if ((( withCompatCommands == false) && ( (*j).second->IsDiscouraged()))
|
||||
|| ((withCurrentCommands == false) && (!(*j).second->IsDiscouraged())))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
cmDocumentationEntry e =
|
||||
{
|
||||
(*j).second->GetName(),
|
||||
(*j).second->GetTerseDocumentation(),
|
||||
(*j).second->GetFullDocumentation()
|
||||
};
|
||||
continue;
|
||||
}
|
||||
|
||||
cmDocumentationEntry e((*j).second->GetName(),
|
||||
(*j).second->GetTerseDocumentation(),
|
||||
(*j).second->GetFullDocumentation());
|
||||
v.push_back(e);
|
||||
}
|
||||
cmDocumentationEntry empty = {0,0,0};
|
||||
v.push_back(empty);
|
||||
}
|
||||
|
||||
void cmake::GetPropertiesDocumentation(std::vector<cmDocumentationEntry>& v,
|
||||
cmProperty::ScopeType type)
|
||||
void cmake::GetPropertiesDocumentation(std::map<std::string,
|
||||
cmDocumentationSection *>& v)
|
||||
{
|
||||
// get the properties for cmake
|
||||
this->PropertyDefinitions[type].GetPropertiesDocumentation(v);
|
||||
cmDocumentationEntry empty = {0,0,0};
|
||||
v.push_back(empty);
|
||||
// loop over the properties and put them into the doc structure
|
||||
std::map<cmProperty::ScopeType, cmPropertyDefinitionMap>::iterator i;
|
||||
i = this->PropertyDefinitions.begin();
|
||||
for (;i != this->PropertyDefinitions.end(); ++i)
|
||||
{
|
||||
i->second.GetPropertiesDocumentation(v);
|
||||
}
|
||||
}
|
||||
|
||||
void cmake::GetGeneratorDocumentation(std::vector<cmDocumentationEntry>& v)
|
||||
|
@ -2293,12 +2291,10 @@ void cmake::GetGeneratorDocumentation(std::vector<cmDocumentationEntry>& v)
|
|||
cmDocumentationEntry e;
|
||||
cmExternalMakefileProjectGenerator* generator = (i->second)();
|
||||
generator->GetDocumentation(e, i->first.c_str());
|
||||
e.name = i->first.c_str();
|
||||
e.Name = i->first;
|
||||
delete generator;
|
||||
v.push_back(e);
|
||||
}
|
||||
cmDocumentationEntry empty = {0,0,0};
|
||||
v.push_back(empty);
|
||||
}
|
||||
|
||||
void cmake::AddWrittenFile(const char* file)
|
||||
|
@ -3089,10 +3085,12 @@ void cmake::DefineProperties(cmake *cm)
|
|||
void cmake::DefineProperty(const char *name, cmProperty::ScopeType scope,
|
||||
const char *ShortDescription,
|
||||
const char *FullDescription,
|
||||
bool chained)
|
||||
bool chained, const char *docSection)
|
||||
{
|
||||
this->PropertyDefinitions[scope].DefineProperty(name,scope,ShortDescription,
|
||||
FullDescription, chained);
|
||||
FullDescription,
|
||||
docSection,
|
||||
chained);
|
||||
}
|
||||
|
||||
bool cmake::IsPropertyDefined(const char *name, cmProperty::ScopeType scope)
|
||||
|
|
|
@ -52,6 +52,7 @@ class cmCommand;
|
|||
class cmVariableWatch;
|
||||
class cmFileTimeComparison;
|
||||
class cmExternalMakefileProjectGenerator;
|
||||
class cmDocumentationSection;
|
||||
|
||||
class cmake
|
||||
{
|
||||
|
@ -250,8 +251,8 @@ class cmake
|
|||
void GetCommandDocumentation(std::vector<cmDocumentationEntry>& entries,
|
||||
bool withCurrentCommands = true,
|
||||
bool withCompatCommands = true) const;
|
||||
void GetPropertiesDocumentation(std::vector<cmDocumentationEntry>&,
|
||||
cmProperty::ScopeType type);
|
||||
void GetPropertiesDocumentation(std::map<std::string,
|
||||
cmDocumentationSection *>&);
|
||||
void GetGeneratorDocumentation(std::vector<cmDocumentationEntry>&);
|
||||
|
||||
///! Set/Get a property of this target file
|
||||
|
@ -308,7 +309,8 @@ class cmake
|
|||
void DefineProperty(const char *name, cmProperty::ScopeType scope,
|
||||
const char *ShortDescription,
|
||||
const char *FullDescription,
|
||||
bool chain = false);
|
||||
bool chain = false,
|
||||
const char *variableGroup = 0);
|
||||
|
||||
// Is a property defined?
|
||||
bool IsPropertyDefined(const char *name, cmProperty::ScopeType scope);
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
|
||||
#ifdef CMAKE_BUILD_WITH_CMAKE
|
||||
//----------------------------------------------------------------------------
|
||||
static const cmDocumentationEntry cmDocumentationName[] =
|
||||
static const char * cmDocumentationName[][3] =
|
||||
{
|
||||
{0,
|
||||
" cmake - Cross-Platform Makefile Generator.", 0},
|
||||
|
@ -40,7 +40,7 @@ static const cmDocumentationEntry cmDocumentationName[] =
|
|||
};
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
static const cmDocumentationEntry cmDocumentationUsage[] =
|
||||
static const char * cmDocumentationUsage[][3] =
|
||||
{
|
||||
{0,
|
||||
" cmake [options] <path-to-source>\n"
|
||||
|
@ -49,7 +49,7 @@ static const cmDocumentationEntry cmDocumentationUsage[] =
|
|||
};
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
static const cmDocumentationEntry cmDocumentationDescription[] =
|
||||
static const char * cmDocumentationDescription[][3] =
|
||||
{
|
||||
{0,
|
||||
"The \"cmake\" executable is the CMake command-line interface. It may "
|
||||
|
@ -62,7 +62,7 @@ static const cmDocumentationEntry cmDocumentationDescription[] =
|
|||
};
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
static const cmDocumentationEntry cmDocumentationOptions[] =
|
||||
static const char * cmDocumentationOptions[][3] =
|
||||
{
|
||||
CMAKE_STANDARD_OPTIONS_TABLE,
|
||||
{"-E", "CMake command mode.",
|
||||
|
@ -166,7 +166,7 @@ static const cmDocumentationEntry cmDocumentationOptions[] =
|
|||
};
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
static const cmDocumentationEntry cmDocumentationSeeAlso[] =
|
||||
static const char * cmDocumentationSeeAlso[][3] =
|
||||
{
|
||||
{0, "ccmake", 0},
|
||||
{0, "ctest", 0},
|
||||
|
@ -174,7 +174,7 @@ static const cmDocumentationEntry cmDocumentationSeeAlso[] =
|
|||
};
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
static const cmDocumentationEntry cmDocumentationNOTE[] =
|
||||
static const char * cmDocumentationNOTE[][3] =
|
||||
{
|
||||
{0,
|
||||
"CMake no longer configures a project when run with no arguments. "
|
||||
|
@ -300,43 +300,24 @@ int do_cmake(int ac, char** av)
|
|||
|
||||
std::vector<cmDocumentationEntry> commands;
|
||||
std::vector<cmDocumentationEntry> compatCommands;
|
||||
std::vector<cmDocumentationEntry> globalProperties;
|
||||
std::vector<cmDocumentationEntry> dirProperties;
|
||||
std::vector<cmDocumentationEntry> targetProperties;
|
||||
std::vector<cmDocumentationEntry> testProperties;
|
||||
std::vector<cmDocumentationEntry> sourceFileProperties;
|
||||
std::vector<cmDocumentationEntry> variableProperties;
|
||||
std::vector<cmDocumentationEntry> cachedVariableProperties;
|
||||
std::map<std::string,cmDocumentationSection *> propDocs;
|
||||
|
||||
std::vector<cmDocumentationEntry> generators;
|
||||
hcm.GetCommandDocumentation(commands, true, false);
|
||||
hcm.GetCommandDocumentation(compatCommands, false, true);
|
||||
hcm.GetPropertiesDocumentation(globalProperties, cmProperty::GLOBAL);
|
||||
hcm.GetPropertiesDocumentation(dirProperties, cmProperty::DIRECTORY);
|
||||
hcm.GetPropertiesDocumentation(targetProperties, cmProperty::TARGET);
|
||||
hcm.GetPropertiesDocumentation(testProperties, cmProperty::TEST);
|
||||
hcm.GetPropertiesDocumentation(sourceFileProperties,
|
||||
cmProperty::SOURCE_FILE);
|
||||
hcm.GetPropertiesDocumentation(variableProperties, cmProperty::VARIABLE);
|
||||
hcm.GetPropertiesDocumentation(cachedVariableProperties,
|
||||
cmProperty::CACHED_VARIABLE);
|
||||
hcm.GetPropertiesDocumentation(propDocs);
|
||||
hcm.GetGeneratorDocumentation(generators);
|
||||
|
||||
doc.SetName("cmake");
|
||||
doc.SetNameSection(cmDocumentationName);
|
||||
doc.SetUsageSection(cmDocumentationUsage);
|
||||
doc.SetDescriptionSection(cmDocumentationDescription);
|
||||
doc.SetGeneratorsSection(&generators[0]);
|
||||
doc.SetOptionsSection(cmDocumentationOptions);
|
||||
doc.SetCommandsSection(&commands[0]);
|
||||
doc.SetCompatCommandsSection(&compatCommands[0]);
|
||||
doc.SetPropertiesSection(&globalProperties[0], cmProperty::GLOBAL);
|
||||
doc.SetPropertiesSection(&dirProperties[0], cmProperty::DIRECTORY);
|
||||
doc.SetPropertiesSection(&targetProperties[0], cmProperty::TARGET);
|
||||
doc.SetPropertiesSection(&testProperties[0], cmProperty::TEST);
|
||||
doc.SetPropertiesSection(&sourceFileProperties[0],cmProperty::SOURCE_FILE);
|
||||
doc.SetPropertiesSection(&variableProperties[0],cmProperty::VARIABLE);
|
||||
doc.SetPropertiesSection(&cachedVariableProperties[0],
|
||||
cmProperty::CACHED_VARIABLE);
|
||||
doc.SetSection("Name",cmDocumentationName);
|
||||
doc.SetSection("Usage",cmDocumentationUsage);
|
||||
doc.SetSection("Description",cmDocumentationDescription);
|
||||
doc.SetSection("Generators",generators);
|
||||
doc.SetSection("Options",cmDocumentationOptions);
|
||||
doc.SetSection("Commands",commands);
|
||||
doc.SetSection("Compatibility Commands",compatCommands);
|
||||
doc.SetSections(propDocs);
|
||||
|
||||
doc.SetSeeAlsoList(cmDocumentationSeeAlso);
|
||||
int result = doc.PrintRequestedDocumentation(std::cout)? 0:1;
|
||||
|
||||
|
@ -348,7 +329,7 @@ int do_cmake(int ac, char** av)
|
|||
if((ac == 1) && cmSystemTools::FileExists("CMakeLists.txt"))
|
||||
{
|
||||
doc.ClearSections();
|
||||
doc.AddSection("NOTE", cmDocumentationNOTE);
|
||||
doc.SetSection("NOTE", cmDocumentationNOTE);
|
||||
doc.Print(cmDocumentation::UsageForm, std::cerr);
|
||||
return 1;
|
||||
}
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
|
||||
#include "CTest/cmCTestScriptHandler.h"
|
||||
//----------------------------------------------------------------------------
|
||||
static const cmDocumentationEntry cmDocumentationName[] =
|
||||
static const char * cmDocumentationName[][3] =
|
||||
{
|
||||
{0,
|
||||
" ctest - Testing driver provided by CMake.", 0},
|
||||
|
@ -31,7 +31,7 @@ static const cmDocumentationEntry cmDocumentationName[] =
|
|||
};
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
static const cmDocumentationEntry cmDocumentationUsage[] =
|
||||
static const char * cmDocumentationUsage[][3] =
|
||||
{
|
||||
{0,
|
||||
" ctest [options]", 0},
|
||||
|
@ -39,7 +39,7 @@ static const cmDocumentationEntry cmDocumentationUsage[] =
|
|||
};
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
static const cmDocumentationEntry cmDocumentationDescription[] =
|
||||
static const char * cmDocumentationDescription[][3] =
|
||||
{
|
||||
{0,
|
||||
"The \"ctest\" executable is the CMake test driver program. "
|
||||
|
@ -50,7 +50,7 @@ static const cmDocumentationEntry cmDocumentationDescription[] =
|
|||
};
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
static const cmDocumentationEntry cmDocumentationOptions[] =
|
||||
static const char * cmDocumentationOptions[][3] =
|
||||
{
|
||||
{"-C <cfg>, --build-config <cfg>", "Choose configuration to test.",
|
||||
"Some CMake-generated build trees can have multiple build configurations "
|
||||
|
@ -198,7 +198,7 @@ static const cmDocumentationEntry cmDocumentationOptions[] =
|
|||
};
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
static const cmDocumentationEntry cmDocumentationSeeAlso[] =
|
||||
static const char * cmDocumentationSeeAlso[][3] =
|
||||
{
|
||||
{0, "cmake", 0},
|
||||
{0, "ccmake", 0},
|
||||
|
@ -244,11 +244,11 @@ int main (int argc, char *argv[])
|
|||
ch->GetCommandDocumentation(commands);
|
||||
|
||||
doc.SetName("ctest");
|
||||
doc.SetNameSection(cmDocumentationName);
|
||||
doc.SetUsageSection(cmDocumentationUsage);
|
||||
doc.SetDescriptionSection(cmDocumentationDescription);
|
||||
doc.SetOptionsSection(cmDocumentationOptions);
|
||||
doc.SetCommandsSection(&commands[0]);
|
||||
doc.SetSection("Name",cmDocumentationName);
|
||||
doc.SetSection("Usage",cmDocumentationUsage);
|
||||
doc.SetSection("Description",cmDocumentationDescription);
|
||||
doc.SetSection("Options",cmDocumentationOptions);
|
||||
doc.SetSection("Commands",commands);
|
||||
doc.SetSeeAlsoList(cmDocumentationSeeAlso);
|
||||
#ifdef cout
|
||||
# undef cout
|
||||
|
|
Loading…
Reference in New Issue