summaryrefslogtreecommitdiffstats
path: root/Source/MFCDialog
diff options
context:
space:
mode:
authorSebastien Barre <sebastien.barre@kitware.com>2001-12-03 20:59:17 (GMT)
committerSebastien Barre <sebastien.barre@kitware.com>2001-12-03 20:59:17 (GMT)
commit906f0a33398a16e95b047f07e8dd1c8e7f3b0375 (patch)
treef5b37072fdbcf78e52fdf425fb62d5301520628c /Source/MFCDialog
parent9214ad0ec663daaecdf7272175451433c9457254 (diff)
downloadCMake-906f0a33398a16e95b047f07e8dd1c8e7f3b0375.zip
CMake-906f0a33398a16e95b047f07e8dd1c8e7f3b0375.tar.gz
CMake-906f0a33398a16e95b047f07e8dd1c8e7f3b0375.tar.bz2
Add /A and /G command-line param to carry the value of "Show Advanced" and generator name in desktop shortcuts
Diffstat (limited to 'Source/MFCDialog')
-rw-r--r--Source/MFCDialog/CMakeCommandLineInfo.cpp41
-rw-r--r--Source/MFCDialog/CMakeCommandLineInfo.h4
-rw-r--r--Source/MFCDialog/CMakeSetupDialog.cpp9
3 files changed, 48 insertions, 6 deletions
diff --git a/Source/MFCDialog/CMakeCommandLineInfo.cpp b/Source/MFCDialog/CMakeCommandLineInfo.cpp
index aefb349..26c705b 100644
--- a/Source/MFCDialog/CMakeCommandLineInfo.cpp
+++ b/Source/MFCDialog/CMakeCommandLineInfo.cpp
@@ -17,12 +17,34 @@ CMakeCommandLineInfo::CMakeCommandLineInfo()
{
m_WhereSource = _T("");
m_WhereBuild = _T("");
+ m_AdvancedValues = FALSE;
+ m_GeneratorChoiceString = _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
@@ -35,14 +57,29 @@ void CMakeCommandLineInfo::ParseParam(LPCTSTR lpszParam, BOOL bFlag, BOOL bLast)
if (sParam[1] == '=' || sParam[1] == ':')
{
CString value(sParam.Right(sParam.GetLength() - 2));
+ int res;
switch (sParam[0])
{
- case 'H':
- m_WhereSource = value;
+ case 'A':
+ res = CMakeCommandLineInfo::GetBoolValue(value);
+ if (res == 1)
+ {
+ m_AdvancedValues = TRUE;
+ }
+ else if (res == -1)
+ {
+ m_AdvancedValues = FALSE;
+ }
break;
case 'B':
m_WhereBuild = value;
break;
+ case 'G':
+ m_GeneratorChoiceString = value;
+ break;
+ case 'H':
+ m_WhereSource = value;
+ break;
}
}
}
diff --git a/Source/MFCDialog/CMakeCommandLineInfo.h b/Source/MFCDialog/CMakeCommandLineInfo.h
index 997f25c..fd4d950 100644
--- a/Source/MFCDialog/CMakeCommandLineInfo.h
+++ b/Source/MFCDialog/CMakeCommandLineInfo.h
@@ -27,6 +27,8 @@ public:
public:
CString m_WhereSource;
CString m_WhereBuild;
+ BOOL m_AdvancedValues;
+ CString m_GeneratorChoiceString;
// Operations
public:
@@ -35,6 +37,8 @@ public:
// Implementation
public:
virtual ~CMakeCommandLineInfo();
+protected:
+ static int GetBoolValue(const CString&);
};
#endif // !defined(CMAKECOMMANDLINEINFO_H)
diff --git a/Source/MFCDialog/CMakeSetupDialog.cpp b/Source/MFCDialog/CMakeSetupDialog.cpp
index fab7aef..43484b4 100644
--- a/Source/MFCDialog/CMakeSetupDialog.cpp
+++ b/Source/MFCDialog/CMakeSetupDialog.cpp
@@ -86,9 +86,9 @@ CMakeSetupDialog::CMakeSetupDialog(const CMakeCommandLineInfo& cmdInfo,
//{{AFX_DATA_INIT(CMakeSetupDialog)
m_WhereSource = cmdInfo.m_WhereSource;
m_WhereBuild = cmdInfo.m_WhereBuild;
- m_GeneratorChoiceString = _T("");
- m_AdvancedValues = FALSE;
- //}}AFX_DATA_INIT
+ m_GeneratorChoiceString = cmdInfo.m_GeneratorChoiceString;
+ m_AdvancedValues = cmdInfo.m_AdvancedValues;
+ //}}AFX_DATA_INIT
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
m_BuildPathChanged = false;
@@ -977,7 +977,8 @@ int CMakeSetupDialog::CreateShortcut()
}
// Set the arguments of the shortcut.
- CString args = " /H=" + m_WhereSource + " /B=" + m_WhereBuild;
+ CString args = " /H=\"" + m_WhereSource + "\" /B=\"" + m_WhereBuild + "\" /G=\"" + m_GeneratorChoiceString + "\" /A=\"" + (m_AdvancedValues ? "TRUE" : "FALSE") + "\"";
+
hres = psl->SetArguments(args);
if (! SUCCEEDED (hres))