ENH: Added support for documentation options.

This commit is contained in:
Brad King 2003-07-23 17:40:10 -04:00
parent ae84581f86
commit 5a1d6f2866
1 changed files with 65 additions and 2 deletions

View File

@ -5,6 +5,50 @@
#include "CMakeSetup.h"
#include "CMakeSetupDialog.h"
#include "CMakeCommandLineInfo.h"
#include "../cmDocumentation.h"
#include "../cmake.h"
//----------------------------------------------------------------------------
static const cmDocumentationEntry cmDocumentationName[] =
{
{0,
" CMakeSetup - CMake Windows GUI.", 0},
{0,0,0}
};
//----------------------------------------------------------------------------
static const cmDocumentationEntry cmDocumentationUsage[] =
{
{0,
" CMakeSetup [options]\n"
" CMakeSetup [options] <path-to-source>\n"
" CMakeSetup [options] <path-to-build>", 0},
{0,0,0}
};
//----------------------------------------------------------------------------
static const cmDocumentationEntry cmDocumentationDescription[] =
{
{0,
"The \"CMakeSetup\" executable is the CMake Windows GUI. Project "
"configuration settings may be specified interactively. "
"Brief instructions are provided at the bottom of the "
"window when the program is running.", 0},
CMAKE_STANDARD_INTRODUCTION,
{0,0,0}
};
//----------------------------------------------------------------------------
static const cmDocumentationEntry cmDocumentationOptions[] =
{
{"-A[on|off]", "Enable/disable display of advanced cache values.",
"There are two categories of CMake cache values: non-advanced and "
"advanced. Most users will not need to change the advanced options. "
"The CMakeSetup GUI contains a checkbox to enable/disable display of "
"advanced options. This command line flag changes its default setting."},
{0,0,0}
};
#ifdef _DEBUG
#define new DEBUG_NEW
@ -57,9 +101,28 @@ BOOL CMakeSetup::InitInstance()
#endif
CMakeCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
// Check for documentation options.
cmDocumentation doc;
if(doc.CheckOptions(cmdInfo.GetArgC(), cmdInfo.GetArgV()))
{
// Construct and print requested documentation.
cmake hcm;
std::vector<cmDocumentationEntry> commands;
std::vector<cmDocumentationEntry> generators;
hcm.GetCommandDocumentation(commands);
hcm.GetGeneratorDocumentation(generators);
doc.SetNameSection(cmDocumentationName);
doc.SetUsageSection(cmDocumentationUsage);
doc.SetDescriptionSection(cmDocumentationDescription);
doc.SetGeneratorsSection(&generators[0]);
doc.SetOptionsSection(cmDocumentationOptions);
doc.SetCommandsSection(&commands[0]);
return (doc.PrintRequestedDocumentation(std::cout)? 0:1);
}
CMakeSetupDialog dlg(cmdInfo);
m_pMainWnd = &dlg;
INT_PTR nResponse = dlg.DoModal();
if (nResponse == IDOK)