diff options
author | Brad King <brad.king@kitware.com> | 2005-03-01 17:13:38 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2005-03-01 17:13:38 (GMT) |
commit | b636a0f20aa9f94940acd109e3717ef79730d168 (patch) | |
tree | df2d377a2ed0c3b053384bdd477f14b1ff842499 /Source | |
parent | 717927d6d2f8ef4ad1a5a960adc8c80aa1b7e44a (diff) | |
download | CMake-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.cxx | 17 | ||||
-rw-r--r-- | Source/cmInstallProgramsCommand.h | 7 |
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" |