| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- // CMakeSetupdialog.cpp : Defines the class behaviors for the application.
- //
- #include "stdafx.h"
- #include "CMakeSetup.h"
- #include "CMakeSetupDialog.h"
- #include "CMakeCommandLineInfo.h"
- #include "../cmDocumentation.h"
- #include "../cmake.h"
- //----------------------------------------------------------------------------
- static const char * cmDocumentationName[][3] =
- {
- {0,
- " CMakeSetup - CMake Windows GUI.", 0},
- {0,0,0}
- };
- //----------------------------------------------------------------------------
- static const char * cmDocumentationUsage[][3] =
- {
- {0,
- " CMakeSetup [options]\n"
- " CMakeSetup [options] <path-to-source>\n"
- " CMakeSetup [options] <path-to-existing-build>", 0},
- {0,0,0}
- };
- //----------------------------------------------------------------------------
- static const char * cmDocumentationDescription[][3] =
- {
- {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 char * cmDocumentationOptions[][3] =
- {
- {"-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
- #undef THIS_FILE
- static char THIS_FILE[] = __FILE__;
- #endif
- /////////////////////////////////////////////////////////////////////////////
- // CMakeSetup
- BEGIN_MESSAGE_MAP(CMakeSetup, CWinApp)
- //{{AFX_MSG_MAP(CMakeSetup)
- // NOTE - the ClassWizard will add and remove mapping macros here.
- // DO NOT EDIT what you see in these blocks of generated code!
- //}}AFX_MSG
- ON_COMMAND(ID_HELP, CWinApp::OnHelp)
- END_MESSAGE_MAP();
- /////////////////////////////////////////////////////////////////////////////
- // CMakeSetup construction
- CMakeSetup::CMakeSetup()
- {
- // TODO: add construction code here,
- // Place all significant initialization in InitInstance
- }
- /////////////////////////////////////////////////////////////////////////////
- // The one and only CMakeSetup object
- CMakeSetup theApp;
- /////////////////////////////////////////////////////////////////////////////
- // CMakeSetup initialization
- BOOL CMakeSetup::InitInstance()
- {
- AfxEnableControlContainer();
- // Standard initialization
- // If you are not using these features and wish to reduce the size
- // of your final executable, you should remove from the following
- // the specific initialization routines you do not need.
- #if _MFC_VER <= 0x421
- #ifdef _AFXDLL
- Enable3dControls(); // Call this when using MFC in a shared DLL
- #else
- Enable3dControlsStatic(); // Call this when linking to MFC statically
- #endif
- #endif
- CMakeCommandLineInfo cmdInfo;
- ParseCommandLine(cmdInfo);
- // Check for documentation options. If there are no arguments skip
- // the check because the GUI should be displayed instead of showing
- // usage in this case.
- cmDocumentation doc;
- if(cmdInfo.GetArgC() > 1 &&
- doc.CheckOptions(cmdInfo.GetArgC(), cmdInfo.GetArgV()))
- {
- // Construct and print requested documentation.
- cmake hcm;
- hcm.AddCMakePaths(cmdInfo.GetArgV()[0]);
- doc.SetCMakeRoot(hcm.GetCacheDefinition("CMAKE_ROOT"));
- std::vector<cmDocumentationEntry> commands;
- std::vector<cmDocumentationEntry> compatCommands;
- std::vector<cmDocumentationEntry> generators;
- hcm.GetCommandDocumentation(commands, true, false);
- hcm.GetCommandDocumentation(compatCommands, false, true);
- hcm.GetGeneratorDocumentation(generators);
- doc.SetName("cmake");
- 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);
- }
-
- CMakeSetupDialog dlg(cmdInfo);
-
- m_pMainWnd = &dlg;
- INT_PTR nResponse = dlg.DoModal();
- if (nResponse == IDOK)
- {
- // TODO: Place code here to handle when the dialog is
- // dismissed with OK
- }
- else if (nResponse == IDCANCEL)
- {
- // TODO: Place code here to handle when the dialog is
- // dismissed with Cancel
- }
- // Since the dialog has been closed, return FALSE so that we exit the
- // application, rather than start the application's message pump.
- return FALSE;
- }
|