summaryrefslogtreecommitdiffstats
path: root/Source/cmAuxSourceDirectoryCommand.cxx
diff options
context:
space:
mode:
authorWill Schroeder <will.schroeder@kitware.com>2001-01-18 16:20:24 (GMT)
committerWill Schroeder <will.schroeder@kitware.com>2001-01-18 16:20:24 (GMT)
commit658614ff6a14411e2a697fac1f1717a7f4370bf0 (patch)
tree42702fd2580f03b4553d385afeaf42608700758b /Source/cmAuxSourceDirectoryCommand.cxx
parentcacd6d160410660bcbc27f02b267833448c1eef1 (diff)
downloadCMake-658614ff6a14411e2a697fac1f1717a7f4370bf0.zip
CMake-658614ff6a14411e2a697fac1f1717a7f4370bf0.tar.gz
CMake-658614ff6a14411e2a697fac1f1717a7f4370bf0.tar.bz2
ENH:Reworked CMake for consistency
Diffstat (limited to 'Source/cmAuxSourceDirectoryCommand.cxx')
-rw-r--r--Source/cmAuxSourceDirectoryCommand.cxx61
1 files changed, 61 insertions, 0 deletions
diff --git a/Source/cmAuxSourceDirectoryCommand.cxx b/Source/cmAuxSourceDirectoryCommand.cxx
new file mode 100644
index 0000000..64aa7d2
--- /dev/null
+++ b/Source/cmAuxSourceDirectoryCommand.cxx
@@ -0,0 +1,61 @@
+/*=========================================================================
+
+ Program: Insight Segmentation & Registration Toolkit
+ Module: $RCSfile$
+ Language: C++
+ Date: $Date$
+ Version: $Revision$
+
+
+ Copyright (c) 2000 National Library of Medicine
+ All rights reserved.
+
+ See COPYRIGHT.txt for copyright details.
+
+=========================================================================*/
+#include "cmAuxSourceDirectoryCommand.h"
+#include "cmDirectory.h"
+
+// cmAuxSourceDirectoryCommand
+bool cmAuxSourceDirectoryCommand::Invoke(std::vector<std::string>& args)
+{
+ if(args.size() < 1 || args.size() > 1)
+ {
+ this->SetError("PROJECT called with incorrect number of arguments");
+ return false;
+ }
+
+ std::string templateDirectory = args[0];
+ m_Makefile->AddExtraDirectory(templateDirectory.c_str());
+ std::string tdir = m_Makefile->GetCurrentDirectory();
+ tdir += "/";
+ tdir += templateDirectory;
+ // Load all the files in the directory
+ cmDirectory dir;
+ if(dir.Load(tdir.c_str()))
+ {
+ int numfiles = dir.GetNumberOfFiles();
+ for(int i =0; i < numfiles; ++i)
+ {
+ std::string file = dir.GetFile(i);
+ // ignore files less than f.cxx in length
+ if(file.size() > 4)
+ {
+ // Remove the extension
+ std::string::size_type dotpos = file.rfind(".");
+ file = file.substr(0, dotpos);
+ std::string fullname = templateDirectory;
+ fullname += "/";
+ fullname += file;
+ // add the file as a class file so
+ // depends can be done
+ cmClassFile cmfile;
+ cmfile.SetName(fullname.c_str(), m_Makefile->GetCurrentDirectory());
+ cmfile.m_AbstractClass = false;
+ m_Makefile->AddClass(cmfile);
+ }
+ }
+ }
+ return true;
+}
+