diff options
author | Stephen Kelly <steveire@gmail.com> | 2013-01-01 22:20:04 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2013-01-10 14:46:57 (GMT) |
commit | 8a37ebec784cefe4f04cb8897c23a014c3930052 (patch) | |
tree | 6a1fff33c9447c3fbb87f2496baf57fa208f4dec /Source/cmTargetPropCommandBase.h | |
parent | c2cde7f1047b2f11e7d4a466000a20d8c42394be (diff) | |
download | CMake-8a37ebec784cefe4f04cb8897c23a014c3930052.zip CMake-8a37ebec784cefe4f04cb8897c23a014c3930052.tar.gz CMake-8a37ebec784cefe4f04cb8897c23a014c3930052.tar.bz2 |
Add the target_include_directories command.
This is a convenience API to populate the corresponding properties.
Diffstat (limited to 'Source/cmTargetPropCommandBase.h')
-rw-r--r-- | Source/cmTargetPropCommandBase.h | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/Source/cmTargetPropCommandBase.h b/Source/cmTargetPropCommandBase.h new file mode 100644 index 0000000..90e3bbb --- /dev/null +++ b/Source/cmTargetPropCommandBase.h @@ -0,0 +1,57 @@ +/*============================================================================ + CMake - Cross Platform Makefile Generator + Copyright 2013 Stephen Kelly <steveire@gmail.com> + + Distributed under the OSI-approved BSD License (the "License"); + see accompanying file Copyright.txt for details. + + This software is distributed WITHOUT ANY WARRANTY; without even the + implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + See the License for more information. +============================================================================*/ + +#ifndef cmTargetPropCommandBase_h +#define cmTargetPropCommandBase_h + +#include "cmCommand.h" + +class cmTarget; + +//---------------------------------------------------------------------------- +class cmTargetPropCommandBase : public cmCommand +{ +public: + + enum ArgumentFlags { + NO_FLAGS = 0, + PROCESS_BEFORE = 1 + }; + + bool HandleArguments(std::vector<std::string> const& args, + const char *prop, ArgumentFlags flags = NO_FLAGS); + +private: + virtual void HandleImportedTargetInvalidScope(const std::string &tgt, + const std::string &scope) = 0; + virtual void HandleMissingTarget(const std::string &name) = 0; + + virtual bool HandleNonTargetArg(std::string &content, + const std::string &sep, + const std::string &entry, + const std::string &tgt) = 0; + + virtual void HandleDirectContent(cmTarget *tgt, + const std::string &content, + bool prepend) = 0; + + bool ProcessContentArgs(std::vector<std::string> const& args, + unsigned int &argIndex, bool prepend); + void PopulateTargetProperies(const std::string &scope, + const std::string &content, bool prepend); + +private: + cmTarget *Target; + std::string Property; +}; + +#endif |