summaryrefslogtreecommitdiffstats
path: root/Source/cmExportCommand.h
diff options
context:
space:
mode:
authorAlexander Neundorf <neundorf@kde.org>2007-06-08 15:57:16 (GMT)
committerAlexander Neundorf <neundorf@kde.org>2007-06-08 15:57:16 (GMT)
commit0ddc9f62e59b2b97625f50eb444093bb36950113 (patch)
treebdba7bdfa514c60404e900724bbe3f52b340fcd9 /Source/cmExportCommand.h
parent79077f83731e598298ec35392911848f87d32f23 (diff)
downloadCMake-0ddc9f62e59b2b97625f50eb444093bb36950113.zip
CMake-0ddc9f62e59b2b97625f50eb444093bb36950113.tar.gz
CMake-0ddc9f62e59b2b97625f50eb444093bb36950113.tar.bz2
ENH: add cmExternalMakefileProjectGenerator, which should make it easier to
write generators for IDE projects, which use already existing makefiles (current the kdevelop generator) -first stept of the export interface, iniitial export() command -more replacements for the FIND_XXX docs Alex
Diffstat (limited to 'Source/cmExportCommand.h')
-rw-r--r--Source/cmExportCommand.h85
1 files changed, 85 insertions, 0 deletions
diff --git a/Source/cmExportCommand.h b/Source/cmExportCommand.h
new file mode 100644
index 0000000..97f709f
--- /dev/null
+++ b/Source/cmExportCommand.h
@@ -0,0 +1,85 @@
+/*=========================================================================
+
+ 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.
+
+=========================================================================*/
+#ifndef cmExportCommand_h
+#define cmExportCommand_h
+
+#include "cmCommand.h"
+
+/** \class cmExportLibraryDependenciesCommand
+ * \brief Add a test to the lists of tests to run.
+ *
+ * cmExportLibraryDependenciesCommand adds a test to the list of tests to run
+ *
+ */
+class cmExportCommand : public cmCommand
+{
+public:
+ /**
+ * This is a virtual constructor for the command.
+ */
+ virtual cmCommand* Clone()
+ {
+ return new cmExportCommand;
+ }
+
+ /**
+ * This is called when the command is first encountered in
+ * the CMakeLists.txt 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 "EXPORT";}
+
+ /**
+ * Succinct documentation.
+ */
+ virtual const char* GetTerseDocumentation()
+ {
+ return
+ "Write out the dependency information for all targets of a project.";
+ }
+
+ /**
+ * More documentation.
+ */
+ virtual const char* GetFullDocumentation()
+ {
+ return
+ " EXPORT(TARGETS tgt1 tgt2 ... [PREFIX <prefix>] FILE <filename> [APPEND])\n"
+ "Create a file that can be included into a CMake listfile with the "
+ "INCLUDE command. The file will contain a number of SET commands "
+ "that will set all the variables needed for library dependency "
+ "information. This should be the last command in the top level "
+ "CMakeLists.txt file of the project. If the APPEND option is "
+ "specified, the SET commands will be appended to the given file "
+ "instead of replacing it.";
+ }
+
+ cmTypeMacro(cmExportCommand, cmCommand);
+
+private:
+ bool ParseArgs(const std::vector<std::string>& args, std::string& filename,
+ std::string& prefix, std::string& exportName,
+ std::vector<std::string>& targets, bool& append ) const;
+
+};
+
+
+#endif