|
|
@ -21,27 +21,17 @@ inline std::vector<std::string> tokenize(const std::string& str, |
|
|
|
bool skipEmptyTokens) |
|
|
|
{ |
|
|
|
std::vector<std::string> tokens; |
|
|
|
std::string::size_type tokstart,tokend; |
|
|
|
|
|
|
|
if (skipEmptyTokens) |
|
|
|
if(str.size() == 0) |
|
|
|
{ |
|
|
|
tokend=0; |
|
|
|
tokens.push_back(""); |
|
|
|
return tokens; |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
tokend=std::string::npos; |
|
|
|
} |
|
|
|
|
|
|
|
std::string::size_type tokstart,tokend; |
|
|
|
|
|
|
|
tokend=0; |
|
|
|
do |
|
|
|
{ |
|
|
|
if (skipEmptyTokens) |
|
|
|
{ |
|
|
|
tokstart=str.find_first_not_of(sep,tokend); |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
tokstart=tokend+1; |
|
|
|
} |
|
|
|
tokstart=str.find_first_not_of(sep,tokend); |
|
|
|
if (tokstart==std::string::npos) |
|
|
|
{ |
|
|
|
break; // no more tokens
|
|
|
@ -56,7 +46,6 @@ inline std::vector<std::string> tokenize(const std::string& str, |
|
|
|
tokens.push_back(str.substr(tokstart,tokend-tokstart)); |
|
|
|
} |
|
|
|
} while (tokend!=std::string::npos); |
|
|
|
|
|
|
|
return tokens; |
|
|
|
} |
|
|
|
|
|
|
@ -70,16 +59,15 @@ bool cmSourceGroupCommand::InitialPass(std::vector<std::string> const& args) |
|
|
|
} |
|
|
|
|
|
|
|
std::string delimiter = "\\"; |
|
|
|
|
|
|
|
if(m_Makefile->GetDefinition("SOURCE_GROUP_DELIMITER")) |
|
|
|
{ |
|
|
|
delimiter = m_Makefile->GetDefinition("SOURCE_GROUP_DELIMITER"); |
|
|
|
} |
|
|
|
|
|
|
|
std::vector<std::string> folders = tokenize(args[0], delimiter, true); |
|
|
|
|
|
|
|
const char *parent = NULL; |
|
|
|
|
|
|
|
cmSourceGroup* sg = NULL; |
|
|
|
|
|
|
|
for(unsigned int i=0;i<folders.size();++i) |
|
|
|
{ |
|
|
|
sg = m_Makefile->GetSourceGroup(folders[i].c_str()); |
|
|
@ -90,7 +78,11 @@ bool cmSourceGroupCommand::InitialPass(std::vector<std::string> const& args) |
|
|
|
sg = m_Makefile->GetSourceGroup(folders[i].c_str()); |
|
|
|
parent = folders[i].c_str(); |
|
|
|
} |
|
|
|
|
|
|
|
if(!sg) |
|
|
|
{ |
|
|
|
this->SetError("Could not create or find source group"); |
|
|
|
return false; |
|
|
|
} |
|
|
|
// If only two arguments are given, the pre-1.8 version of the
|
|
|
|
// command is being invoked.
|
|
|
|
if(args.size() == 2 && args[1] != "FILES") |
|
|
|