diff options
author | Brad King <brad.king@kitware.com> | 2006-02-10 18:54:36 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2006-02-10 18:54:36 (GMT) |
commit | b8a33fb424aa28b710e0ec170814ac380ee057db (patch) | |
tree | 23c06b61601d90d4703271fed4f90d2d3df7fee7 /Source/cmInstallCommand.cxx | |
parent | d2621064e27e38eba984c994746eaee40bc09ebc (diff) | |
download | CMake-b8a33fb424aa28b710e0ec170814ac380ee057db.zip CMake-b8a33fb424aa28b710e0ec170814ac380ee057db.tar.gz CMake-b8a33fb424aa28b710e0ec170814ac380ee057db.tar.bz2 |
ENH: Added INSTALL command as a placeholder for a future generic install specification interface. Currently it supports only a SCRIPT option specifying a script to run during the install stage.
Diffstat (limited to 'Source/cmInstallCommand.cxx')
-rw-r--r-- | Source/cmInstallCommand.cxx | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/Source/cmInstallCommand.cxx b/Source/cmInstallCommand.cxx new file mode 100644 index 0000000..97f12ca --- /dev/null +++ b/Source/cmInstallCommand.cxx @@ -0,0 +1,54 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile$ + Language: C++ + Date: $Date$ + Version: $Revision$ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html 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 "cmInstallCommand.h" + +// cmInstallCommand +bool cmInstallCommand::InitialPass(std::vector<std::string> const& args) +{ + bool doing_script = false; + for(size_t i=0; i < args.size(); ++i) + { + if(args[i] == "SCRIPT") + { + doing_script = true; + } + else if(doing_script) + { + doing_script = false; + std::string script = args[i]; + if(!cmSystemTools::FileIsFullPath(script.c_str())) + { + script = m_Makefile->GetCurrentDirectory(); + script += "/"; + script += args[i]; + } + if(cmSystemTools::FileIsDirectory(script.c_str())) + { + this->SetError("given a directory as value of SCRIPT argument."); + return false; + } + m_Makefile->AddInstallScript(script.c_str()); + } + } + if(doing_script) + { + this->SetError("given no value for SCRIPT argument."); + return false; + } + + return true; +} |