Implemented -G option

This commit is contained in:
Jorgen Bodde 2005-08-09 15:42:49 -04:00
parent 7df63f38c5
commit 8a52a910e1
4 changed files with 90 additions and 102 deletions

View File

@ -91,8 +91,11 @@ bool CMakeSetupApp::OnInit()
// parse command line params
cmCommandLineInfo cm;
cm.SetValidArguments("ABGHQG");
cm.ParseCommandLine(wxApp::argc, wxApp::argv);
if(!cm.ParseCommandLine(wxApp::argc, wxApp::argv))
{
printf("Error while parsing the command line\n");
return false;
}
// set vendor name and app for config
SetVendorName("Kitware");

View File

@ -37,13 +37,13 @@
cmCommandLineInfo::cmCommandLineInfo()
{
this->m_WhereSource = "";
this->m_WhereBuild = "";
this->m_AdvancedValues = false;
m_GeneratorChoiceString.Empty();
this->m_LastUnknownParameter = "";
this->m_ValidArguments = "";
this->m_ExitAfterLoad = false;
m_WhereSource = "";
m_WhereBuild = "";
m_AdvancedValues = false;
m_GeneratorChoiceString.Empty();
m_LastUnknownParameter = "";
m_ValidArguments = "";
m_ExitAfterLoad = false;
}
///////////////////////////////////////////////////////////////
@ -52,124 +52,113 @@ cmCommandLineInfo::~cmCommandLineInfo()
}
///////////////////////////////////////////////////////////////
void cmCommandLineInfo::ParseCommandLine(int argc, char* argv[])
bool cmCommandLineInfo::ParseCommandLine(int argc, char* argv[])
{
for ( int cc = 1; cc < argc; cc ++ )
bool result = true;
wxString cachePath;
for ( int cc = 1; cc < argc && result; cc ++ )
{
// skip (empty ???) params
if ( strlen(argv[cc]) < 1 )
continue;
std::string argument = argv[cc];
bool valid = ((argument.size() > 1) && (m_ValidArguments.find(argument[1]) == std::string::npos));
ParseParam(argument, valid, (cc + 1 == argc));
// judge argument and parse
wxString argument(argv[cc]);
if((argument.Len() > 1) && argument.GetChar(0) == '-')
result = ParseArgument(argument.Mid(1));
else
{
// ok this is the last of the arguments, the rest of the string(s)
// we concatenate to the cache path or something else
if(cc > 1)
cachePath << " ";
cachePath << argument;
}
}
m_ExecutablePath = cmSystemTools::GetFilenamePath(argv[0]);
m_ExecutablePath = cmSystemTools::GetFilenamePath(argv[0]).c_str();
return result;
}
///////////////////////////////////////////////////////////////
int cmCommandLineInfo::GetBoolValue(const std::string& v) {
std::string value = cmSystemTools::LowerCase(v);
if (value == "1" ||
value == "on" ||
value == "true" ||
value == "yes")
int cmCommandLineInfo::GetBoolValue(const wxString& v) {
wxString value = v.Lower();
if (!value.Cmp("1") ||
!value.Cmp("on") ||
!value.Cmp("true") ||
!value.Cmp("yes"))
{
return 1;
// true
return 1;
}
else if (value == "0" ||
value == "off" ||
value == "false" ||
value == "no")
else if (!value.Cmp("0") ||
!value.Cmp("off") ||
!value.Cmp("false") ||
!value.Cmp("no"))
{
return -1;
// false
return -1;
}
return 0;
// not recognised
return 0;
}
///////////////////////////////////////////////////////////////
// Parse param
void cmCommandLineInfo::ParseParam(const std::string& parameter,
bool know_about, bool /*last*/)
{
// this is the last parameter we know, so we assign this to be
// path to source or path to existing build
if(!know_about)
m_LastUnknownParameter = parameter;
else
{
std::string sParam(parameter.c_str(), 1, parameter.npos);
// Single letter valued flag like /B=value or /B:value
std::string value;
if (sParam[1] == '=' || sParam[1] == ':')
{
value = std::string(parameter.c_str()+3);
}
else
{
value = std::string(parameter.c_str()+2);
}
int res;
bool cmCommandLineInfo::ParseArgument(const wxString& sParam)
{
bool result = false;
if(sParam.Len() > 1)
{
wxString value = sParam.Mid(1);
switch (sParam[0])
{
case 'A':
res = cmCommandLineInfo::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 = GetStringParam(value.c_str());
m_GeneratorChoiceString = GetStringParam(value);
result = true;
break;
case 'Q':
m_ExitAfterLoad = true;
result = true;
break;
case 'H':
m_WhereSource = value;
// unknown param
default:
break;
}
}
return result;
}
// When the string param given has string quotes around it
// we remove them and we pass back the string. If not, we
// simply pass back the string as-is
wxString cmCommandLineInfo::GetStringParam(const char *pString)
wxString cmCommandLineInfo::GetStringParam(const wxString &str)
{
wxCHECK(pString, wxEmptyString);
wxString str(pString);
str = str.Strip(wxString::both);
wxString mystr = str.Strip(wxString::both);
// if we have only one (or no chars return the current string)
if(str.Len() < 2)
if(mystr.Len() < 2)
return str;
// if we have quotes
if(str.GetChar(0) == '\"' && str.Last() == '\"')
if(mystr.GetChar(0) == '\"' && mystr.Last() == '\"')
{
// when we only have 2 in size, return empty string
if(str.Len() == 2)
if(mystr.Len() == 2)
return wxEmptyString;
// now remove the outer and inner, and return
return str.Mid(1, str.Len()-1);
return mystr.Mid(1, mystr.Len()-1);
}
return str;

View File

@ -35,36 +35,33 @@ public:
virtual ~cmCommandLineInfo();
// Parse the command line
void ParseCommandLine(int argc, char* argv[]);
// Set the valid arguments
void SetValidArguments(const std::string& va) { this->m_ValidArguments = va; }
bool ParseCommandLine(int argc, char* argv[]);
// Retrieve the path of executable
std::string GetPathToExecutable() { return this->m_ExecutablePath; }
wxString GetPathToExecutable() { return this->m_ExecutablePath; }
// Attributes
public:
std::string m_WhereSource;
std::string m_WhereBuild;
wxString m_WhereSource;
wxString m_WhereBuild;
bool m_AdvancedValues;
wxString m_GeneratorChoiceString;
std::string m_LastUnknownParameter;
std::string m_ExecutablePath;
wxString m_LastUnknownParameter;
wxString m_ExecutablePath;
bool m_ExitAfterLoad;
protected:
private:
// Parse one argument
void ParseParam(const std::string& parameter, bool know_about, bool last);
bool ParseArgument(const wxString& sParam);
// Return boolean value of the string
static int GetBoolValue(const std::string&);
static int GetBoolValue(const wxString&);
// on windows the argument with spaces SUCKS! So we need to
// incorporate it with quotes.
wxString GetStringParam(const char *pString);
wxString GetStringParam(const wxString &str);
std::string m_ValidArguments;
wxString m_ValidArguments;
};
#endif // !defined(CMAKECOMMANDLINEINFO_H)

View File

@ -1,12 +1,12 @@
<?xml version="1.0" encoding="windows-1252" ?>
<TODOLIST FILEFORMAT="7" PROJECTNAME="CMakeSetup GUI project" NEXTUNIQUEID="119" FILEVERSION="126" LASTMODIFIED="2005-08-08" CUSTOMCOMMENTSTYPE="849cf988-79fe-418a-a40d-01fe3afcab2c"><TASK PRIORITYCOLOR="15732480" TEXTWEBCOLOR="#000000" PRIORITY="5" LASTMOD="38479.90427083" TEXTCOLOR="0" TITLE="v1.0b" PRIORITYWEBCOLOR="#000FF0" ID="1" HIGHESTPRIORITY="8" PERCENTDONE="0" POS="2"><TASK PRIORITYCOLOR="15732480" STARTDATESTRING="30-5-2005" TEXTWEBCOLOR="#000000" PRIORITY="5" LASTMOD="38502.62243056" TEXTCOLOR="0" TITLE="Interpret directory from dropped shortcut" COMMENTS="In DoInitFrame()
<TODOLIST FILEFORMAT="7" PROJECTNAME="CMakeSetup GUI project" NEXTUNIQUEID="121" FILEVERSION="128" LASTMODIFIED="2005-08-09" CUSTOMCOMMENTSTYPE="849cf988-79fe-418a-a40d-01fe3afcab2c"><TASK PRIORITYCOLOR="15732480" TEXTWEBCOLOR="#000000" PRIORITY="5" LASTMOD="38479.90427083" TEXTCOLOR="0" TITLE="v1.0b" PRIORITYWEBCOLOR="#000FF0" ID="1" HIGHESTPRIORITY="8" PERCENTDONE="0" POS="2"><TASK PRIORITYCOLOR="15732480" STARTDATESTRING="30-5-2005" TEXTWEBCOLOR="#000000" PRIORITY="5" LASTMOD="38502.62243056" TEXTCOLOR="0" TITLE="Interpret directory from dropped shortcut" COMMENTS="In DoInitFrame()
{
m_cmShowAdvanced-&gt;SetValue(false);
// TODO: Interpret directory from dropped shortcut
//this-&gt;ChangeDirectoriesFromFile(cmdInfo-&gt;m_LastUnknownParameter.c_str());
}" PRIORITYWEBCOLOR="#000FF0" ID="94" PERCENTDONE="0" STARTDATE="38502.00000000" POS="3"/><TASK PRIORITYCOLOR="15732480" STARTDATESTRING="30-5-2005" TEXTWEBCOLOR="#000000" PRIORITY="5" ALLOCATEDBY="Andy" LASTMOD="38502.94655093" TEXTCOLOR="0" TITLE="Make sources consistent with formatting" COMMENTS="The second thing has to do with your coding standard. The indentation
}" PRIORITYWEBCOLOR="#000FF0" ID="94" PERCENTDONE="0" STARTDATE="38502.00000000" POS="2"/><TASK PRIORITYCOLOR="15732480" STARTDATESTRING="30-5-2005" TEXTWEBCOLOR="#000000" PRIORITY="5" ALLOCATEDBY="Andy" LASTMOD="38502.94655093" TEXTCOLOR="0" TITLE="Make sources consistent with formatting" COMMENTS="The second thing has to do with your coding standard. The indentation
would be ok (even though it is different), as long as it would be
consistent. Looks like you are using tabs sometimes, spaces some other
times, so depending on what editor you use, the code looks
@ -16,7 +16,7 @@ Also, related to this is that your code has DOS new-lines on some lines
but not on other. Inconsistent DOS new-lines sometimes confuse certain
compilers." PRIORITYWEBCOLOR="#000FF0" ID="97" PERCENTDONE="100" STARTDATE="38502.00000000" DONEDATESTRING="2-6-2005" DONEDATE="38505.00000000" POS="8"/><TASK PRIORITYCOLOR="15732480" STARTDATESTRING="30-5-2005" TEXTWEBCOLOR="#000000" PRIORITY="5" ALLOCATEDBY="Andy" LASTMOD="38502.94726852" TEXTCOLOR="0" TITLE="A different popup window that also has an exit button" CATEGORY="Pending" COMMENTS="Oh, and another feature request, once you run generate, there is a
popup
that says generation complete. Could you put a exit button there too?" PRIORITYWEBCOLOR="#000FF0" ID="99" PERCENTDONE="0" STARTDATE="38502.00000000" POS="5"/><TASK PRIORITYCOLOR="15732480" STARTDATESTRING="30-5-2005" TEXTWEBCOLOR="#000000" PRIORITY="5" ALLOCATEDBY="Andy" LASTMOD="38502.94839120" TEXTCOLOR="0" TITLE="Add keyboard shortcuts to the GUI" COMMENTS="And, how difficult it is to add keyboard shortcuts to the gui? Could
that says generation complete. Could you put a exit button there too?" PRIORITYWEBCOLOR="#000FF0" ID="99" PERCENTDONE="0" STARTDATE="38502.00000000" POS="4"/><TASK PRIORITYCOLOR="15732480" STARTDATESTRING="30-5-2005" TEXTWEBCOLOR="#000000" PRIORITY="5" ALLOCATEDBY="Andy" LASTMOD="38502.94839120" TEXTCOLOR="0" TITLE="Add keyboard shortcuts to the GUI" COMMENTS="And, how difficult it is to add keyboard shortcuts to the gui? Could
you
duplicate ccmake's keyboard shortcuts in NG gui?
@ -35,7 +35,7 @@ That's allright ;-)
&gt; command line. I would like to do something like:
&gt;
&gt; CMakeSetup --source /foo/bar/src --build /foo/bar/bin
&gt; --run-configure-and-generate" PRIORITYWEBCOLOR="#000FF0" ID="103" PERCENTDONE="0" STARTDATE="38515.00000000" POS="4"/><TASK PRIORITYCOLOR="13435129" STARTDATESTRING="12-6-2005" TEXTWEBCOLOR="#000000" PRIORITY="8" LASTMOD="38515.47834491" TEXTCOLOR="0" TITLE="Add Licence header for every source" COMMENTS="Please just copy the header comment from another header like
&gt; --run-configure-and-generate" PRIORITYWEBCOLOR="#000FF0" ID="103" PERCENTDONE="0" STARTDATE="38515.00000000" POS="3"/><TASK PRIORITYCOLOR="13435129" STARTDATESTRING="12-6-2005" TEXTWEBCOLOR="#000000" PRIORITY="8" LASTMOD="38515.47834491" TEXTCOLOR="0" TITLE="Add Licence header for every source" COMMENTS="Please just copy the header comment from another header like
cmVersion.h
and put it at the top of all your sources. If you want to add those
extra CVS $$ tokens please do so in a comment under this block so that
@ -69,10 +69,9 @@ I would add:
cmake [options] &lt;path to cmake cache&gt;
Andy" PRIORITYWEBCOLOR="#F900CD" ID="108" PERCENTDONE="0" STARTDATE="38527.00000000" POS="1"><TASK PRIORITYCOLOR="13435129" STARTDATESTRING="8-8-2005" TEXTWEBCOLOR="#000000" PRIORITY="8" LASTMOD="38572.93009259" TEXTCOLOR="0" TITLE="Implement -G{generator}" PRIORITYWEBCOLOR="#F900CD" ID="113" PERCENTDONE="0" STARTDATE="38572.00000000" POS="1"/><TASK PRIORITYCOLOR="13435129" STARTDATESTRING="8-8-2005" TEXTWEBCOLOR="#000000" PRIORITY="8" LASTMOD="38572.93034722" TEXTCOLOR="0" TITLE="Implement -C{initial cache}" PRIORITYWEBCOLOR="#F900CD" ID="115" PERCENTDONE="0" STARTDATE="38572.00000000" POS="3"/><TASK PRIORITYCOLOR="13435129" STARTDATESTRING="8-8-2005" TEXTWEBCOLOR="#000000" PRIORITY="8" LASTMOD="38572.93065972" TEXTCOLOR="0" TITLE="Implement -D&lt;var&gt;:&lt;type&gt;=&lt;value&gt;" PRIORITYWEBCOLOR="#F900CD" ID="117" PERCENTDONE="0" STARTDATE="38572.00000000" POS="4"/><TASK PRIORITYCOLOR="13435129" STARTDATESTRING="8-8-2005" TEXTWEBCOLOR="#000000" PRIORITY="8" LASTMOD="38572.93120370" TEXTCOLOR="0" TITLE="Implement -N" COMMENTS="This is view mode only (read only)
" PRIORITYWEBCOLOR="#F900CD" ID="118" CUSTOMCOMMENTS="e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZGVmZjBcZGVmbGFuZzEwMzN7XGZvbnR0Ymx7XGYwXGZuaWxcZmNoYXJzZXQwIE1TIFNhbnMgU2VyaWY7fX0NClx2aWV3a2luZDRcdWMxXHBhcmRcdHg2NDBcdHgxMjgwXHR4MTkyMFx0eDI1NjBcdHgzMjAwXHR4Mzg0MFx0eDQ0ODBcdHg1MTIwXHR4NTc2MFx0eDY0MDBcdHg3MDQwXHR4NzY4MFx0eDgzMjBcdHg4OTYwXHR4OTYwMFx0eDEwMjQwXHR4MTA4ODBcdHgxMTUyMFx0eDEyMTYwXHR4MTI4MDBcdHgxMzQ0MFx0eDE0MDgwXHR4MTQ3MjBcdHgxNTM2MFx0eDE2MDAwXHR4MTY2NDBcdHgxNzI4MFx0eDE3OTIwXHR4MTg1NjBcdHgxOTIwMFx0eDE5ODQwXHR4MjA0ODBcZjBcZnMxOCBUaGlzIGlzIHZpZXcgbW9kZSBvbmx5IChyZWFkIG9ubHkpXHBhcg0KXHBhcg0KfQ0K" PERCENTDONE="0" STARTDATE="38572.00000000" POS="2"/></TASK><TASK PRIORITYCOLOR="15732480" STARTDATESTRING="24-6-2005" TEXTWEBCOLOR="#000000" PRIORITY="5" LASTMOD="38557.47869213" TEXTCOLOR="0" TITLE="Commit source to CVS" PRIORITYWEBCOLOR="#000FF0" ID="109" PERCENTDONE="100" STARTDATE="38527.00000000" DONEDATESTRING="24-7-2005" DONEDATE="38557.00000000" POS="6"/><TASK PRIORITYCOLOR="15732480" STARTDATESTRING="24-7-2005" TEXTWEBCOLOR="#000000" PRIORITY="5" LASTMOD="38557.47881944" TEXTCOLOR="0" TITLE="The directory was called WXDialog but the executable was wxCMakeSetup" COMMENTS="The directory was called WXDialog but the executable was wxCMakeSetup:
Andy" PRIORITYWEBCOLOR="#F900CD" ID="108" PERCENTDONE="0" STARTDATE="38527.00000000" POS="5"><TASK PRIORITYCOLOR="13435129" STARTDATESTRING="8-8-2005" TEXTWEBCOLOR="#000000" PRIORITY="8" LASTMOD="38573.90017361" TEXTCOLOR="0" TITLE="Implement -G{generator}" PRIORITYWEBCOLOR="#F900CD" ID="113" PERCENTDONE="100" STARTDATE="38572.00000000" DONEDATESTRING="9-8-2005" DONEDATE="38573.00000000" POS="2"/><TASK PRIORITYCOLOR="13435129" STARTDATESTRING="8-8-2005" TEXTWEBCOLOR="#000000" PRIORITY="8" LASTMOD="38572.93034722" TEXTCOLOR="0" TITLE="Implement -C{initial cache}" PRIORITYWEBCOLOR="#F900CD" ID="115" PERCENTDONE="0" STARTDATE="38572.00000000" POS="4"/><TASK PRIORITYCOLOR="13435129" STARTDATESTRING="8-8-2005" TEXTWEBCOLOR="#000000" PRIORITY="8" LASTMOD="38572.93065972" TEXTCOLOR="0" TITLE="Implement -D&lt;var&gt;:&lt;type&gt;=&lt;value&gt;" PRIORITYWEBCOLOR="#F900CD" ID="117" PERCENTDONE="0" STARTDATE="38572.00000000" POS="5"/><TASK PRIORITYCOLOR="13435129" STARTDATESTRING="8-8-2005" TEXTWEBCOLOR="#000000" PRIORITY="8" LASTMOD="38572.93120370" TEXTCOLOR="0" TITLE="Implement -N" COMMENTS="This is view mode only (read only)" PRIORITYWEBCOLOR="#F900CD" ID="118" CUSTOMCOMMENTS="e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZGVmZjBcZGVmbGFuZzEwMzN7XGZvbnR0Ymx7XGYwXGZuaWxcZmNoYXJzZXQwIE1TIFNhbnMgU2VyaWY7fX0NClx2aWV3a2luZDRcdWMxXHBhcmRcdHg2NDBcdHgxMjgwXHR4MTkyMFx0eDI1NjBcdHgzMjAwXHR4Mzg0MFx0eDQ0ODBcdHg1MTIwXHR4NTc2MFx0eDY0MDBcdHg3MDQwXHR4NzY4MFx0eDgzMjBcdHg4OTYwXHR4OTYwMFx0eDEwMjQwXHR4MTA4ODBcdHgxMTUyMFx0eDEyMTYwXHR4MTI4MDBcdHgxMzQ0MFx0eDE0MDgwXHR4MTQ3MjBcdHgxNTM2MFx0eDE2MDAwXHR4MTY2NDBcdHgxNzI4MFx0eDE3OTIwXHR4MTg1NjBcdHgxOTIwMFx0eDE5ODQwXHR4MjA0ODBcZjBcZnMxOCBUaGlzIGlzIHZpZXcgbW9kZSBvbmx5IChyZWFkIG9ubHkpXHBhcg0KXHBhcg0KfQ0K" PERCENTDONE="0" STARTDATE="38572.00000000" POS="3"/><TASK PRIORITYCOLOR="13435129" STARTDATESTRING="9-8-2005" TEXTWEBCOLOR="#000000" PRIORITY="8" LASTMOD="38573.89736111" TEXTCOLOR="0" TITLE="The printing of errors on commandline after parsing err does not yet work" PRIORITYWEBCOLOR="#F900CD" ID="120" PERCENTDONE="0" STARTDATE="38573.00000000" POS="1"/></TASK><TASK PRIORITYCOLOR="15732480" STARTDATESTRING="24-6-2005" TEXTWEBCOLOR="#000000" PRIORITY="5" LASTMOD="38557.47869213" TEXTCOLOR="0" TITLE="Commit source to CVS" PRIORITYWEBCOLOR="#000FF0" ID="109" PERCENTDONE="100" STARTDATE="38527.00000000" DONEDATESTRING="24-7-2005" DONEDATE="38557.00000000" POS="6"/><TASK PRIORITYCOLOR="15732480" STARTDATESTRING="24-7-2005" TEXTWEBCOLOR="#000000" PRIORITY="5" LASTMOD="38557.47881944" TEXTCOLOR="0" TITLE="The directory was called WXDialog but the executable was wxCMakeSetup" COMMENTS="The directory was called WXDialog but the executable was wxCMakeSetup:
ADD_EXECUTABLE(wxCMakeSetup ${WIN32_EXECUTABLE} ${WX_SRCS})" PRIORITYWEBCOLOR="#000FF0" ID="111" CUSTOMCOMMENTS="e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZGVmZjBcZGVmbGFuZzEwMzN7XGZvbnR0Ymx7XGYwXGZuaWxcZmNoYXJzZXQwIFRpbWVzIE5ldyBSb21hbjt9fQ0KXHZpZXdraW5kNFx1YzFccGFyZFx0eDY0MFx0eDEyODBcdHgxOTIwXHR4MjU2MFx0eDMyMDBcdHgzODQwXHR4NDQ4MFx0eDUxMjBcdHg1NzYwXHR4NjQwMFx0eDcwNDBcdHg3NjgwXHR4ODMyMFx0eDg5NjBcdHg5NjAwXHR4MTAyNDBcdHgxMDg4MFx0eDExNTIwXHR4MTIxNjBcdHgxMjgwMFx0eDEzNDQwXHR4MTQwODBcdHgxNDcyMFx0eDE1MzYwXHR4MTYwMDBcdHgxNjY0MFx0eDE3MjgwXHR4MTc5MjBcdHgxODU2MFx0eDE5MjAwXHR4MTk4NDBcdHgyMDQ4MFxmMFxmczIwIFRoZSBkaXJlY3Rvcnkgd2FzIGNhbGxlZCBXWERpYWxvZyBidXQgdGhlIGV4ZWN1dGFibGUgd2FzIHd4Q01ha2VTZXR1cDpccGFyDQpccGFyDQogIEFERF9FWEVDVVRBQkxFKHd4Q01ha2VTZXR1cCAkXHtXSU4zMl9FWEVDVVRBQkxFXH0gJFx7V1hfU1JDU1x9KVxwYXINCn0NCgA=" PERCENTDONE="0" STARTDATE="38557.00000000" POS="2"/></TASK><TASK PRIORITYCOLOR="15732480" TEXTWEBCOLOR="#000000" PRIORITY="5" LASTMOD="38479.90443287" TEXTCOLOR="0" TITLE="Next releases" PRIORITYWEBCOLOR="#000FF0" ID="2" HIGHESTPRIORITY="7" PERCENTDONE="0" POS="1"><TASK PRIORITYCOLOR="15732480" TEXTWEBCOLOR="#000000" PRIORITY="5" LASTMOD="38479.90533565" TEXTCOLOR="0" TITLE="Adjust build path to project path when selected, and append (build) when present" PRIORITYWEBCOLOR="#000FF0" ID="5" PERCENTDONE="0" POS="2"/><TASK PRIORITYCOLOR="15732480" TEXTWEBCOLOR="#000000" PRIORITY="5" LASTMOD="38480.40458333" TEXTCOLOR="0" TITLE="Most recent used file menu" PRIORITYWEBCOLOR="#000FF0" ID="7" PERCENTDONE="0" POS="9"/><TASK PRIORITYCOLOR="15732480" TEXTWEBCOLOR="#000000" PRIORITY="5" LASTMOD="38482.70638889" TEXTCOLOR="0" TITLE="New project based management for user options" COMMENTS="This can contain overridden options and extra injected options for e.g.
ADD_EXECUTABLE(wxCMakeSetup ${WIN32_EXECUTABLE} ${WX_SRCS})" PRIORITYWEBCOLOR="#000FF0" ID="111" CUSTOMCOMMENTS="e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZGVmZjBcZGVmbGFuZzEwMzN7XGZvbnR0Ymx7XGYwXGZuaWxcZmNoYXJzZXQwIFRpbWVzIE5ldyBSb21hbjt9fQ0KXHZpZXdraW5kNFx1YzFccGFyZFx0eDY0MFx0eDEyODBcdHgxOTIwXHR4MjU2MFx0eDMyMDBcdHgzODQwXHR4NDQ4MFx0eDUxMjBcdHg1NzYwXHR4NjQwMFx0eDcwNDBcdHg3NjgwXHR4ODMyMFx0eDg5NjBcdHg5NjAwXHR4MTAyNDBcdHgxMDg4MFx0eDExNTIwXHR4MTIxNjBcdHgxMjgwMFx0eDEzNDQwXHR4MTQwODBcdHgxNDcyMFx0eDE1MzYwXHR4MTYwMDBcdHgxNjY0MFx0eDE3MjgwXHR4MTc5MjBcdHgxODU2MFx0eDE5MjAwXHR4MTk4NDBcdHgyMDQ4MFxmMFxmczIwIFRoZSBkaXJlY3Rvcnkgd2FzIGNhbGxlZCBXWERpYWxvZyBidXQgdGhlIGV4ZWN1dGFibGUgd2FzIHd4Q01ha2VTZXR1cDpccGFyDQpccGFyDQogIEFERF9FWEVDVVRBQkxFKHd4Q01ha2VTZXR1cCAkXHtXSU4zMl9FWEVDVVRBQkxFXH0gJFx7V1hfU1JDU1x9KVxwYXINCn0NCgAA" PERCENTDONE="0" STARTDATE="38557.00000000" POS="1"/></TASK><TASK PRIORITYCOLOR="15732480" TEXTWEBCOLOR="#000000" PRIORITY="5" LASTMOD="38479.90443287" TEXTCOLOR="0" TITLE="Next releases" PRIORITYWEBCOLOR="#000FF0" ID="2" HIGHESTPRIORITY="7" PERCENTDONE="0" POS="1"><TASK PRIORITYCOLOR="15732480" TEXTWEBCOLOR="#000000" PRIORITY="5" LASTMOD="38479.90533565" TEXTCOLOR="0" TITLE="Adjust build path to project path when selected, and append (build) when present" PRIORITYWEBCOLOR="#000FF0" ID="5" PERCENTDONE="0" POS="2"/><TASK PRIORITYCOLOR="15732480" TEXTWEBCOLOR="#000000" PRIORITY="5" LASTMOD="38480.40458333" TEXTCOLOR="0" TITLE="Most recent used file menu" PRIORITYWEBCOLOR="#000FF0" ID="7" PERCENTDONE="0" POS="9"/><TASK PRIORITYCOLOR="15732480" TEXTWEBCOLOR="#000000" PRIORITY="5" LASTMOD="38482.70638889" TEXTCOLOR="0" TITLE="New project based management for user options" COMMENTS="This can contain overridden options and extra injected options for e.g.
SOME_PROJECT_VERSION = 1.06
WX_USE_TREEVIEW = ON