// 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 cmDocumentationEntry cmDocumentationName[] = { {0, " CMakeSetup - CMake Windows GUI.", 0}, {0,0,0} }; //---------------------------------------------------------------------------- static const cmDocumentationEntry cmDocumentationUsage[] = { {0, " CMakeSetup [options]\n" " CMakeSetup [options] \n" " CMakeSetup [options] ", 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 #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; std::vector commands; std::vector generators; hcm.GetCommandDocumentation(commands); hcm.GetGeneratorDocumentation(generators); doc.SetName("CMakeSetup"); 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) { // 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; }