ENH: Added construction of original command line in argc/argv style.
This commit is contained in:
parent
6849cbdfcb
commit
ae84581f86
|
@ -20,6 +20,11 @@ CMakeCommandLineInfo::CMakeCommandLineInfo()
|
||||||
this->m_AdvancedValues = FALSE;
|
this->m_AdvancedValues = FALSE;
|
||||||
this->m_GeneratorChoiceString = _T("");
|
this->m_GeneratorChoiceString = _T("");
|
||||||
this->m_LastUnknownParameter = _T("");
|
this->m_LastUnknownParameter = _T("");
|
||||||
|
|
||||||
|
// Find the path to the CMakeSetup executable.
|
||||||
|
char fname[4096];
|
||||||
|
::GetModuleFileName(0, fname, 4096);
|
||||||
|
m_Argv0 = fname;
|
||||||
}
|
}
|
||||||
|
|
||||||
CMakeCommandLineInfo::~CMakeCommandLineInfo()
|
CMakeCommandLineInfo::~CMakeCommandLineInfo()
|
||||||
|
@ -51,6 +56,25 @@ int CMakeCommandLineInfo::GetBoolValue(const CString& v) {
|
||||||
|
|
||||||
void CMakeCommandLineInfo::ParseParam(LPCTSTR lpszParam, BOOL bFlag, BOOL bLast)
|
void CMakeCommandLineInfo::ParseParam(LPCTSTR lpszParam, BOOL bFlag, BOOL bLast)
|
||||||
{
|
{
|
||||||
|
// Construct the full name of the argument.
|
||||||
|
cmStdString value;
|
||||||
|
if(bFlag)
|
||||||
|
{
|
||||||
|
value = "-";
|
||||||
|
}
|
||||||
|
value += lpszParam;
|
||||||
|
|
||||||
|
// Add the argument and reset the argv table in case strings were
|
||||||
|
// moved.
|
||||||
|
m_Arguments.push_back(value);
|
||||||
|
m_Argv.clear();
|
||||||
|
m_Argv.push_back(m_Argv0.c_str());
|
||||||
|
for(unsigned int i=0; i < m_Arguments.size(); ++i)
|
||||||
|
{
|
||||||
|
m_Argv.push_back(m_Arguments[i].c_str());
|
||||||
|
}
|
||||||
|
|
||||||
|
// Look for known flags.
|
||||||
if(!bFlag)
|
if(!bFlag)
|
||||||
{
|
{
|
||||||
this->m_LastUnknownParameter = lpszParam;
|
this->m_LastUnknownParameter = lpszParam;
|
||||||
|
|
|
@ -28,6 +28,8 @@
|
||||||
#error include 'stdafx.h' before including this file for PCH
|
#error include 'stdafx.h' before including this file for PCH
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include "../cmStandardIncludes.h"
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////
|
||||||
// CMakeCommandLineInfo:
|
// CMakeCommandLineInfo:
|
||||||
// See CMakeCommandLineInfo.cpp for the implementation of this class
|
// See CMakeCommandLineInfo.cpp for the implementation of this class
|
||||||
|
@ -46,7 +48,14 @@ public:
|
||||||
BOOL m_AdvancedValues;
|
BOOL m_AdvancedValues;
|
||||||
CString m_GeneratorChoiceString;
|
CString m_GeneratorChoiceString;
|
||||||
CString m_LastUnknownParameter;
|
CString m_LastUnknownParameter;
|
||||||
|
|
||||||
|
int GetArgC() { return static_cast<int>(m_Argv.size()); }
|
||||||
|
const char*const* GetArgV() { return &*m_Argv.begin(); }
|
||||||
|
|
||||||
|
std::string m_Argv0;
|
||||||
|
std::vector<cmStdString> m_Arguments;
|
||||||
|
std::vector<const char*> m_Argv;
|
||||||
|
|
||||||
// Operations
|
// Operations
|
||||||
public:
|
public:
|
||||||
void ParseParam(const TCHAR* pszParam, BOOL bFlag, BOOL bLast);
|
void ParseParam(const TCHAR* pszParam, BOOL bFlag, BOOL bLast);
|
||||||
|
|
Loading…
Reference in New Issue