summaryrefslogtreecommitdiffstats
path: root/Source/cmIncludeGuardCommand.h
diff options
context:
space:
mode:
authorPavel Solodovnikov <hellyeahdominate@gmail.com>2017-06-22 07:53:42 (GMT)
committerPavel Solodovnikov <hellyeahdominate@gmail.com>2017-06-22 07:53:42 (GMT)
commitd44bd1c25f3a1cba977eee5a6b2f5bd14c46c73d (patch)
tree627bd0cbe3d05955bea82c7dbf1e6636f0d5ea22 /Source/cmIncludeGuardCommand.h
parent4ba2d2e3d76cb1ec04c612f9646c47d3f1231ad2 (diff)
downloadCMake-d44bd1c25f3a1cba977eee5a6b2f5bd14c46c73d.zip
CMake-d44bd1c25f3a1cba977eee5a6b2f5bd14c46c73d.tar.gz
CMake-d44bd1c25f3a1cba977eee5a6b2f5bd14c46c73d.tar.bz2
include_guard: implement new command
Diffstat (limited to 'Source/cmIncludeGuardCommand.h')
-rw-r--r--Source/cmIncludeGuardCommand.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/Source/cmIncludeGuardCommand.h b/Source/cmIncludeGuardCommand.h
new file mode 100644
index 0000000..140c04f
--- /dev/null
+++ b/Source/cmIncludeGuardCommand.h
@@ -0,0 +1,37 @@
+/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+ file Copyright.txt or https://cmake.org/licensing for details. */
+#ifndef cmIncludeGuardCommand_h
+#define cmIncludeGuardCommand_h
+
+#include "cmConfigure.h"
+
+#include <string>
+#include <vector>
+
+#include "cmCommand.h"
+
+class cmExecutionStatus;
+
+/** \class cmIncludeGuardCommand
+ * \brief cmIncludeGuardCommand identical to C++ #pragma_once command
+ * Can work in 3 modes: GLOBAL (works on global properties),
+ * DIRECTORY(use directory property), VARIABLE(unnamed overload without
+ * arguments) define an ordinary variable to be used as include guard checker
+ */
+class cmIncludeGuardCommand : public cmCommand
+{
+public:
+ /**
+ * This is a virtual constructor for the command.
+ */
+ cmCommand* Clone() CM_OVERRIDE { return new cmIncludeGuardCommand; }
+
+ /**
+ * This is called when the command is first encountered in
+ * the CMakeLists.txt file.
+ */
+ bool InitialPass(std::vector<std::string> const& args,
+ cmExecutionStatus& status) CM_OVERRIDE;
+};
+
+#endif