Commit 7d76de44 authored by Bill Hoffman's avatar Bill Hoffman

make sure ; expansion is done in all commands

parent 0223ba91
......@@ -17,13 +17,16 @@
#include "cmAbstractFilesCommand.h"
// cmAbstractFilesCommand
bool cmAbstractFilesCommand::InitialPass(std::vector<std::string> const& args)
bool cmAbstractFilesCommand::InitialPass(std::vector<std::string> const& argsIn)
{
if(args.size() < 1 )
if(argsIn.size() < 1 )
{
this->SetError("called with incorrect number of arguments");
return false;
}
std::vector<std::string> args;
cmSystemTools::ExpandListArguments(argsIn, args);
bool ret = true;
std::string m = "could not find source file(s):\n";
......
......@@ -18,17 +18,19 @@
// cmAddCustomCommandCommand
bool cmAddCustomCommandCommand::InitialPass(std::vector<std::string> const& args)
bool cmAddCustomCommandCommand::InitialPass(std::vector<std::string> const& argsIn)
{
/* Let's complain at the end of this function about the lack of a particular
arg. For the moment, let's say that SOURCE, COMMAND, TARGET are always
required.
*/
if (args.size() < 6)
if (argsIn.size() < 6)
{
this->SetError("called with wrong number of arguments.");
return false;
}
std::vector<std::string> args;
cmSystemTools::ExpandListArguments(argsIn, args);
std::string source, command, target;
std::vector<std::string> command_args, depends, outputs;
......
......@@ -17,15 +17,17 @@
#include "cmAddCustomTargetCommand.h"
// cmAddCustomTargetCommand
bool cmAddCustomTargetCommand::InitialPass(std::vector<std::string> const& args)
bool cmAddCustomTargetCommand::InitialPass(std::vector<std::string> const& argsIn)
{
bool all = false;
if(args.size() < 2 )
if(argsIn.size() < 2 )
{
this->SetError("called with incorrect number of arguments");
return false;
}
std::vector<std::string> args;
cmSystemTools::ExpandListArguments(argsIn, args);
// all target option
std::string arguments;
......
......@@ -17,13 +17,16 @@
#include "cmAddDefinitionsCommand.h"
// cmAddDefinitionsCommand
bool cmAddDefinitionsCommand::InitialPass(std::vector<std::string> const& args)
bool cmAddDefinitionsCommand::InitialPass(std::vector<std::string> const& argsIn)
{
if(args.size() < 1 )
if(argsIn.size() < 1 )
{
this->SetError("called with incorrect number of arguments");
return false;
}
std::vector<std::string> args;
cmSystemTools::ExpandListArguments(argsIn, args);
for(std::vector<std::string>::const_iterator i = args.begin();
i != args.end(); ++i)
{
......
......@@ -18,14 +18,16 @@
#include "cmCacheManager.h"
// cmDependenciesCommand
bool cmAddDependenciesCommand::InitialPass(std::vector<std::string> const& args)
bool cmAddDependenciesCommand::InitialPass(std::vector<std::string> const& argsIn)
{
if(args.size() < 2 )
if(argsIn.size() < 2 )
{
this->SetError("called with incorrect number of arguments");
return false;
}
std::vector<std::string> args;
cmSystemTools::ExpandListArguments(argsIn, args);
std::string target_name = args[0];
cmTargets &tgts = m_Makefile->GetTargets();
......
......@@ -34,13 +34,7 @@ bool cmAddTestCommand::InitialPass(std::vector<std::string> const& args)
// also expand any CMake variables
m_Args.erase(m_Args.begin(), m_Args.end());
std::string temp;
for (std::vector<std::string>::const_iterator j = args.begin();
j != args.end(); ++j)
{
m_Args.push_back(*j);
}
cmSystemTools::ExpandListArguments(args, m_Args);
return true;
}
......
......@@ -19,13 +19,15 @@
#include "cmTarget.h"
// cmCableClassSetCommand
bool cmCableClassSetCommand::InitialPass(std::vector<std::string> const& args)
bool cmCableClassSetCommand::InitialPass(std::vector<std::string> const& argsIn)
{
if(args.size() < 2)
if(argsIn.size() < 2)
{
this->SetError("called with incorrect number of arguments");
return false;
}
std::vector<std::string> args;
cmSystemTools::ExpandListArguments(argsIn, args);
// The first argument is the name of the set.
std::vector<std::string>::const_iterator arg = args.begin();
......
......@@ -122,17 +122,19 @@ cmCableWrapTclCommand::~cmCableWrapTclCommand()
// cmCableWrapTclCommand
bool cmCableWrapTclCommand::InitialPass(std::vector<std::string> const& args)
bool cmCableWrapTclCommand::InitialPass(std::vector<std::string> const& argsIn)
{
if(args.size() < 2)
if(argsIn.size() < 2)
{
this->SetError("called with incorrect number of arguments");
return false;
}
std::vector<std::string> args;
cmSystemTools::ExpandListArguments(argsIn, args);
// Prepare to iterate through the arguments.
std::vector<std::string>::const_iterator arg = args.begin();
// The first argument is the name of the target.
m_TargetName = *arg++;
......
......@@ -68,7 +68,6 @@
#include "cmSetSourceFilesPropertiesCommand.cxx"
#include "cmSiteNameCommand.cxx"
#include "cmSourceFilesCommand.cxx"
#include "cmSourceFilesFlagsCommand.cxx"
#include "cmSourceFilesRemoveCommand.cxx"
#include "cmSourceGroupCommand.cxx"
#include "cmSubdirCommand.cxx"
......@@ -137,7 +136,6 @@ void GetPredefinedCommands(std::list<cmCommand*>& commands)
commands.push_back(new cmSetSourceFilesPropertiesCommand);
commands.push_back(new cmSiteNameCommand);
commands.push_back(new cmSourceFilesCommand);
commands.push_back(new cmSourceFilesFlagsCommand);
commands.push_back(new cmSourceFilesRemoveCommand);
commands.push_back(new cmSourceGroupCommand);
commands.push_back(new cmSubdirCommand);
......
......@@ -27,7 +27,7 @@ bool cmCreateTestSourceList::InitialPass(std::vector<std::string> const& argsIn)
}
std::vector<std::string> args;
cmSystemTools::ExpandListArguments(argsIn, args, true);
cmSystemTools::ExpandListArguments(argsIn, args);
std::vector<std::string>::iterator i = args.begin();
......
......@@ -19,7 +19,7 @@
// cmFLTKWrapUICommand
bool cmFLTKWrapUICommand::InitialPass(std::vector<std::string> const& args)
{
if(args.size() < 2 )
if(args.size() != 2 )
{
this->SetError("called with incorrect number of arguments");
return false;
......
......@@ -31,12 +31,12 @@ bool cmFindFileCommand::InitialPass(std::vector<std::string> const& argsIn)
std::string helpString = "Where can the ";
helpString += argsIn[1] + " file be found";
size_t size = argsIn.size();
std::vector<std::string> args;
std::vector<std::string> argst;
for(unsigned int j = 0; j < size; ++j)
{
if(argsIn[j] != "DOC")
{
args.push_back(argsIn[j]);
argst.push_back(argsIn[j]);
}
else
{
......@@ -47,6 +47,9 @@ bool cmFindFileCommand::InitialPass(std::vector<std::string> const& argsIn)
break;
}
}
std::vector<std::string> args;
cmSystemTools::ExpandListArguments(argst, args);
std::vector<std::string>::const_iterator i = args.begin();
// Use the first argument as the name of something to be defined
const char* define = (*i).c_str();
......
......@@ -27,12 +27,12 @@ bool cmFindLibraryCommand::InitialPass(std::vector<std::string> const& argsIn)
}
std::string helpString;
size_t size = argsIn.size();
std::vector<std::string> args;
std::vector<std::string> argst;
for(unsigned int j = 0; j < size; ++j)
{
if(argsIn[j] != "DOC")
{
args.push_back(argsIn[j]);
argst.push_back(argsIn[j]);
}
else
{
......@@ -43,6 +43,8 @@ bool cmFindLibraryCommand::InitialPass(std::vector<std::string> const& argsIn)
break;
}
}
std::vector<std::string> args;
cmSystemTools::ExpandListArguments(argst, args);
std::vector<std::string> path;
std::vector<std::string> names;
......
......@@ -30,13 +30,13 @@ bool cmFindPathCommand::InitialPass(std::vector<std::string> const& argsIn)
// already, if so use that value and don't look for the program
std::string helpString = "What is the path where the file ";
helpString += argsIn[1] + " can be found";
std::vector<std::string> args;
std::vector<std::string> argst;
size_t size = argsIn.size();
for(unsigned int j = 0; j < size; ++j)
{
if(argsIn[j] != "DOC")
{
args.push_back(argsIn[j]);
argst.push_back(argsIn[j]);
}
else
{
......@@ -47,6 +47,9 @@ bool cmFindPathCommand::InitialPass(std::vector<std::string> const& argsIn)
break;
}
}
std::vector<std::string> args;
cmSystemTools::ExpandListArguments(argst, args);
const char* cacheValue
= m_Makefile->GetDefinition(args[0].c_str());
if(cacheValue && strcmp(cacheValue, "NOTFOUND"))
......
......@@ -30,12 +30,12 @@ bool cmFindProgramCommand::InitialPass(std::vector<std::string> const& argsIn)
}
std::string doc = "Path to a program.";
size_t size = argsIn.size();
std::vector<std::string> args;
std::vector<std::string> argst;
for(unsigned int j = 0; j < size; ++j)
{
if(argsIn[j] != "DOC")
{
args.push_back(argsIn[j]);
argst.push_back(argsIn[j]);
}
else
{
......@@ -46,6 +46,10 @@ bool cmFindProgramCommand::InitialPass(std::vector<std::string> const& argsIn)
break;
}
}
std::vector<std::string> args;
cmSystemTools::ExpandListArguments(argst, args);
std::vector<std::string>::iterator i = args.begin();
// Use the first argument as the name of something to be defined
const char* define = (*i).c_str();
......
......@@ -20,7 +20,7 @@
bool cmGetSourceFilePropertyCommand::InitialPass(std::vector<std::string> const&
args)
{
if(args.size() < 3 )
if(args.size() != 3 )
{
this->SetError("called with incorrect number of arguments");
return false;
......@@ -38,7 +38,7 @@ bool cmGetSourceFilePropertyCommand::InitialPass(std::vector<std::string> const&
{
m_Makefile->AddDefinition(var, sf->GetWrapExclude());
}
if(args[2] == "FLAGS")
if(args[2] == "COMPILE_FLAGS")
{
m_Makefile->AddDefinition(var, sf->GetCompileFlags());
}
......
......@@ -53,7 +53,7 @@ public:
virtual const char* GetFullDocumentation()
{
return
"GET_SOURCE_FILE_PROPERTY(VAR file [ABSTRACT|WRAP_EXCLUDE|FLAGS]) "
"GET_SOURCE_FILE_PROPERTY(VAR file [ABSTRACT|WRAP_EXCLUDE|COMPILE_FLAGS]) "
"Get a property from a source file. The value of the property is stored "
"in the variable VAR.";
}
......
......@@ -17,13 +17,15 @@
#include "cmIncludeDirectoryCommand.h"
#include "cmCacheManager.h"
// cmIncludeDirectoryCommand
bool cmIncludeDirectoryCommand::InitialPass(std::vector<std::string> const& args)
bool cmIncludeDirectoryCommand::InitialPass(std::vector<std::string> const& argsIn)
{
if(args.size() < 1 )
if(argsIn.size() < 1 )
{
this->SetError("called with incorrect number of arguments");
return false;
}
std::vector<std::string> args;
cmSystemTools::ExpandListArguments(argsIn, args);
std::vector<std::string>::const_iterator i = args.begin();
......
......@@ -18,13 +18,15 @@
#include "cmCacheManager.h"
// cmExecutableCommand
bool cmInstallFilesCommand::InitialPass(std::vector<std::string> const& args)
bool cmInstallFilesCommand::InitialPass(std::vector<std::string> const& argsIn)
{
if(args.size() < 2)
if(argsIn.size() < 2)
{
this->SetError("called with incorrect number of arguments");
return false;
}
std::vector<std::string> args;
cmSystemTools::ExpandListArguments(argsIn, args);
// Create an INSTALL_FILES target specifically for this path.
m_TargetName = "INSTALL_FILES_"+args[0];
......
......@@ -18,13 +18,15 @@
#include "cmCacheManager.h"
// cmExecutableCommand
bool cmInstallProgramsCommand::InitialPass(std::vector<std::string> const& args)
bool cmInstallProgramsCommand::InitialPass(std::vector<std::string> const& argsIn)
{
if(args.size() < 2)
if(argsIn.size() < 2)
{
this->SetError("called with incorrect number of arguments");
return false;
}
std::vector<std::string> args;
cmSystemTools::ExpandListArguments(argsIn, args);
// Create an INSTALL_PROGRAMS target specifically for this path.
m_TargetName = "INSTALL_PROGRAMS_"+args[0];
......
......@@ -18,13 +18,15 @@
#include "cmCacheManager.h"
// cmExecutableCommand
bool cmInstallTargetsCommand::InitialPass(std::vector<std::string> const& args)
bool cmInstallTargetsCommand::InitialPass(std::vector<std::string> const& argsIn)
{
if(args.size() < 2 )
if(argsIn.size() < 2 )
{
this->SetError("called with incorrect number of arguments");
return false;
}
std::vector<std::string> args;
cmSystemTools::ExpandListArguments(argsIn, args);
cmTargets &tgts = m_Makefile->GetTargets();
std::vector<std::string>::const_iterator s = args.begin();
......
......@@ -17,13 +17,16 @@
#include "cmLinkDirectoriesCommand.h"
// cmLinkDirectoriesCommand
bool cmLinkDirectoriesCommand::InitialPass(std::vector<std::string> const& args)
bool cmLinkDirectoriesCommand::InitialPass(std::vector<std::string> const& argsIn)
{
if(args.size() < 1 )
if(argsIn.size() < 1 )
{
this->SetError("called with incorrect number of arguments");
return false;
}
std::vector<std::string> args;
cmSystemTools::ExpandListArguments(argsIn, args);
for(std::vector<std::string>::const_iterator i = args.begin();
i != args.end(); ++i)
{
......
......@@ -18,13 +18,15 @@
// cmLoadcacheCommand
bool cmLoadCacheCommand::InitialPass(std::vector<std::string> const& args)
bool cmLoadCacheCommand::InitialPass(std::vector<std::string> const& argsIn)
{
if (args.size()< 1)
if (argsIn.size()< 1)
{
this->SetError("called with wrong number of arguments.");
}
std::vector<std::string> args;
cmSystemTools::ExpandListArguments(argsIn, args);
// Cache entries to be excluded from the import list.
// If this set is empty, all cache entries are brought in
// and they can not be overridden.
......
......@@ -20,7 +20,7 @@
// cmMakeDirectoryCommand
bool cmMakeDirectoryCommand::InitialPass(std::vector<std::string> const& args)
{
if(args.size() < 1 )
if(args.size() != 1 )
{
this->SetError("called with incorrect number of arguments");
return false;
......
......@@ -17,13 +17,16 @@
#include "cmMarkAsAdvancedCommand.h"
// cmMarkAsAdvancedCommand
bool cmMarkAsAdvancedCommand::InitialPass(std::vector<std::string> const& args)
bool cmMarkAsAdvancedCommand::InitialPass(std::vector<std::string> const& argsIn)
{
if(args.size() < 1 )
if(argsIn.size() < 1 )
{
this->SetError("called with incorrect number of arguments");
return false;
}
std::vector<std::string> args;
cmSystemTools::ExpandListArguments(argsIn, args);
unsigned int i =0;
const char* value = "1";
bool overwrite = false;
......
......@@ -159,7 +159,7 @@ void cmLBDepend::DependWalk(cmDependInformation* info)
// cmOutputRequiredFilesCommand
bool cmOutputRequiredFilesCommand::InitialPass(std::vector<std::string> const& args)
{
if(args.size() < 2 )
if(args.size() != 2 )
{
this->SetError("called with incorrect number of arguments");
return false;
......
......@@ -19,7 +19,7 @@
// cmProjectCommand
bool cmProjectCommand::InitialPass(std::vector<std::string> const& args)
{
if(args.size() < 1 || args.size() > 1)
if(args.size() != 1 )
{
this->SetError("PROJECT called with incorrect number of arguments");
return false;
......
......@@ -17,13 +17,15 @@
#include "cmQTWrapCPPCommand.h"
// cmQTWrapCPPCommand
bool cmQTWrapCPPCommand::InitialPass(std::vector<std::string> const& args)
bool cmQTWrapCPPCommand::InitialPass(std::vector<std::string> const& argsIn)
{
if(args.size() < 3 )
if(argsIn.size() < 3 )
{
this->SetError("called with incorrect number of arguments");
return false;
}
std::vector<std::string> args;
cmSystemTools::ExpandListArguments(argsIn, args);
// Now check and see if the value has been stored in the cache
// already, if so use that value and don't look for the program
......
......@@ -17,13 +17,15 @@
#include "cmQTWrapUICommand.h"
// cmQTWrapUICommand
bool cmQTWrapUICommand::InitialPass(std::vector<std::string> const& args)
bool cmQTWrapUICommand::InitialPass(std::vector<std::string> const& argsIn)
{
if(args.size() < 4 )
if(argsIn.size() < 4 )
{
this->SetError("called with incorrect number of arguments");
return false;
}
std::vector<std::string> args;
cmSystemTools::ExpandListArguments(argsIn, args);
// Now check and see if the value has been stored in the cache
// already, if so use that value and don't look for the program
......
......@@ -18,14 +18,16 @@
// cmSetSourceFilesPropertiesCommand
bool cmSetSourceFilesPropertiesCommand::InitialPass(std::vector<std::string> const&
args)
argsIn)
{
if(args.size() < 2 )
if(argsIn.size() < 2 )
{
this->SetError("called with incorrect number of arguments");
return false;
}
std::vector<std::string> args;
cmSystemTools::ExpandListArguments(argsIn, args);
std::vector<std::string>::const_iterator j;
// first collect up all the flags that need to be set on the file
bool abstract = false;
......@@ -46,7 +48,7 @@ bool cmSetSourceFilesPropertiesCommand::InitialPass(std::vector<std::string> con
{
generated = true;
}
else if(*j == "FLAGS")
else if(*j == "COMPILE_FLAGS")
{
++j;
if(j == args.end())
......@@ -61,7 +63,7 @@ bool cmSetSourceFilesPropertiesCommand::InitialPass(std::vector<std::string> con
for(j = args.begin(); j != args.end(); ++j)
{
// at the sign of the first property exit the loop
if(*j == "ABSTRACT" || *j == "WRAP_EXCLUDE" || *j == "FLAGS")
if(*j == "ABSTRACT" || *j == "WRAP_EXCLUDE" || *j == "COMPILE_FLAGS")
{
break;
}
......
......@@ -53,7 +53,7 @@ public:
virtual const char* GetFullDocumentation()
{
return
"SET_SOURCE_FILES_PROPERTIES(flags file1 file2 [ABSTRACT|WRAP_EXCLUDE|GENERATED|FLAGS] [flags]) "
"SET_SOURCE_FILES_PROPERTIES(flags file1 file2 [ABSTRACT|WRAP_EXCLUDE|GENERATED|COMPILE_FLAGS] [flags]) "
"Set properties on a file. The syntax for the command is to list all the files you want "
"to change, and then provide the values you want to set next.";
}
......
......@@ -19,7 +19,7 @@
// cmSiteNameCommand
bool cmSiteNameCommand::InitialPass(std::vector<std::string> const& args)
{
if(args.size() < 1 )
if(args.size() != 1 )
{
this->SetError("called with incorrect number of arguments");
return false;
......
......@@ -17,14 +17,16 @@
#include "cmSourceFilesCommand.h"
// cmSourceFilesCommand
bool cmSourceFilesCommand::InitialPass(std::vector<std::string> const& args)
bool cmSourceFilesCommand::InitialPass(std::vector<std::string> const& argsIn)
{
if(args.size() < 1 )
if(argsIn.size() < 1 )
{
this->SetError("called with incorrect number of arguments");
return false;
}
std::vector<std::string> args;
cmSystemTools::ExpandListArguments(argsIn, args);
std::string name = args[0];
int generated = 0;
......
/*=========================================================================
Program: Insight Segmentation & Registration Toolkit
Module: $RCSfile$
Language: C++
Date: $Date$
Version: $Revision$
Copyright (c) 2002 Insight Consortium. All rights reserved.
See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notices for more information.
=========================================================================*/
#include "cmSourceFilesFlagsCommand.h"
// cmSourceFilesFlagsCommand
bool cmSourceFilesFlagsCommand::InitialPass(std::vector<std::string> const&
args)
{
if(args.size() < 2 )
{
this->SetError("called with incorrect number of arguments");
return false;
}
std::vector<std::string>::const_iterator j = args.begin();
std::string flags = *j;
++j;
for(;j != args.end(); ++j)
{
cmSourceFile* sf = m_Makefile->GetSource(j->c_str());
if(sf)
{
sf->SetCompileFlags(flags.c_str());
}
else
{
std::string m = "could not find source file ";
m += *j;
this->SetError(m.c_str());
return false;
}
}
return true;
}
/*=========================================================================
Program: Insight Segmentation & Registration Toolkit
Module: $RCSfile$
Language: C++
Date: $Date$
Version: $Revision$
Copyright (c) 2002 Insight Consortium. All rights reserved.
See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notices for more information.
=========================================================================*/
#ifndef cmSourceFilesFlagsCommand_h
#define cmSourceFilesFlagsCommand_h
#include "cmStandardIncludes.h"
#include "cmCommand.h"
class cmSourceFilesFlagsCommand : public cmCommand
{
public:
virtual cmCommand* Clone()
{
return new cmSourceFilesFlagsCommand;
}
/**
* This is called when the command is first encountered in
* the input file.
*/
virtual bool InitialPass(std::vector<std::string> const& args);
/**
* The name of the command as specified in CMakeList.txt.
*/
virtual const char* GetName() { return "SOURCE_FILES_FLAGS";}
/**
* Succinct documentation.