| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- // CMakeCommandLineInfo.cpp : command line arguments
- //
- #include "stdafx.h"
- #include "CMakeCommandLineInfo.h"
- #ifdef _DEBUG
- #define new DEBUG_NEW
- #undef THIS_FILE
- static char THIS_FILE[] = __FILE__;
- #endif
- ///////////////////////////////////////////////////////////////
- // CMakeCommandLineInfo
- CMakeCommandLineInfo::CMakeCommandLineInfo()
- {
- this->m_WhereSource = _T("");
- this->m_WhereBuild = _T("");
- this->m_AdvancedValues = FALSE;
- this->m_GeneratorChoiceString = _T("");
- this->m_LastUnknownParameter = _T("");
- }
- CMakeCommandLineInfo::~CMakeCommandLineInfo()
- {
- }
- int CMakeCommandLineInfo::GetBoolValue(const CString& v) {
- CString value = v;
- value.MakeLower();
- if (value == "1" ||
- value == "on" ||
- value == "true" ||
- value == "yes")
- {
- return 1;
- }
- else if (value == "0" ||
- value == "off" ||
- value == "false" ||
- value == "no")
- {
- return -1;
- }
- return 0;
- }
- ///////////////////////////////////////////////////////////////
- // Parse param
- void CMakeCommandLineInfo::ParseParam(LPCTSTR lpszParam, BOOL bFlag, BOOL bLast)
- {
- if(!bFlag)
- {
- this->m_LastUnknownParameter = lpszParam;
- }
- else
- {
- CString sParam(lpszParam);
- // Single letter valued flag like /B=value or /B:value
- CString value;
- if (sParam[1] == '=' || sParam[1] == ':')
- {
- value = sParam.Right(sParam.GetLength() - 2);
- }
- else
- {
- value = sParam.Right(sParam.GetLength()-1);
- }
- int res;
- switch (sParam[0])
- {
- case 'A':
- res = CMakeCommandLineInfo::GetBoolValue(value);
- if (res == 1)
- {
- this->m_AdvancedValues = TRUE;
- }
- else if (res == -1)
- {
- this->m_AdvancedValues = FALSE;
- }
- break;
- case 'B':
- this->m_WhereBuild = value;
- break;
- case 'G':
- this->m_GeneratorChoiceString = value;
- break;
- case 'H':
- this->m_WhereSource = value;
- break;
- }
- }
- // Call the base class to ensure proper command line processing
- CCommandLineInfo::ParseParam(lpszParam, bFlag, bLast);
- }
|