summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2005-03-01 17:13:38 (GMT)
committerBrad King <brad.king@kitware.com>2005-03-01 17:13:38 (GMT)
commitb636a0f20aa9f94940acd109e3717ef79730d168 (patch)
treedf2d377a2ed0c3b053384bdd477f14b1ff842499 /Source
parent717927d6d2f8ef4ad1a5a960adc8c80aa1b7e44a (diff)
downloadCMake-b636a0f20aa9f94940acd109e3717ef79730d168.zip
CMake-b636a0f20aa9f94940acd109e3717ef79730d168.tar.gz
CMake-b636a0f20aa9f94940acd109e3717ef79730d168.tar.bz2
BUG: Added FILES mode to INSTALL_PROGRAMS command to make the single argument case unambiguous.
Diffstat (limited to 'Source')
-rw-r--r--Source/cmInstallProgramsCommand.cxx17
-rw-r--r--Source/cmInstallProgramsCommand.h7
2 files changed, 19 insertions, 5 deletions
diff --git a/Source/cmInstallProgramsCommand.cxx b/Source/cmInstallProgramsCommand.cxx
index e1645c7..0489a74 100644
--- a/Source/cmInstallProgramsCommand.cxx
+++ b/Source/cmInstallProgramsCommand.cxx
@@ -45,13 +45,24 @@ void cmInstallProgramsCommand::FinalPass()
{
std::vector<std::string>& targetSourceLists =
m_Makefile->GetTargets()[m_TargetName].GetSourceLists();
+
+ bool files_mode = false;
+ if(!m_FinalArgs.empty() && m_FinalArgs[0] == "FILES")
+ {
+ files_mode = true;
+ }
// two different options
- if (m_FinalArgs.size() > 1)
+ if (m_FinalArgs.size() > 1 || files_mode)
{
// for each argument, get the programs
- for (std::vector<std::string>::iterator s = m_FinalArgs.begin();
- s != m_FinalArgs.end(); ++s)
+ std::vector<std::string>::iterator s = m_FinalArgs.begin();
+ if(files_mode)
+ {
+ // Skip the FILES argument in files mode.
+ ++s;
+ }
+ for(;s != m_FinalArgs.end(); ++s)
{
// add to the result
targetSourceLists.push_back(this->FindInstallSource(s->c_str()));
diff --git a/Source/cmInstallProgramsCommand.h b/Source/cmInstallProgramsCommand.h
index b14405e..7aff27f 100644
--- a/Source/cmInstallProgramsCommand.h
+++ b/Source/cmInstallProgramsCommand.h
@@ -69,8 +69,11 @@ public:
virtual const char* GetFullDocumentation()
{
return
- " INSTALL_PROGRAMS(<dir> file file ...)\n"
- "Create rules to install the listed programs into the given directory.\n"
+ " INSTALL_PROGRAMS(<dir> file1 file2 [file3 ...])\n"
+ " INSTALL_PROGRAMS(<dir> FILES file1 [file2 ...])\n"
+ "Create rules to install the listed programs into the given directory. "
+ "Use the FILES argument to guarantee that the file list version of "
+ "the command will be used even when there is only one argument.\n"
" INSTALL_PROGRAMS(<dir> regexp)\n"
"In the second form any program in the current source directory that "
"matches the regular expression will be installed.\n"