diff options
Diffstat (limited to 'Source/cmGeneratorExpressionEvaluator.h')
-rw-r--r-- | Source/cmGeneratorExpressionEvaluator.h | 114 |
1 files changed, 40 insertions, 74 deletions
diff --git a/Source/cmGeneratorExpressionEvaluator.h b/Source/cmGeneratorExpressionEvaluator.h index 218abf160..a0a826ac6 100644 --- a/Source/cmGeneratorExpressionEvaluator.h +++ b/Source/cmGeneratorExpressionEvaluator.h @@ -1,45 +1,18 @@ -/*============================================================================ - CMake - Cross Platform Makefile Generator - Copyright 2012 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. -============================================================================*/ +/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying + file Copyright.txt or https://cmake.org/licensing for details. */ #ifndef cmGeneratorExpressionEvaluator_h #define cmGeneratorExpressionEvaluator_h -#include <vector> -#include <string> - -#include "cmListFileCache.h" - -class cmTarget; +#include "cmConfigure.h" -//---------------------------------------------------------------------------- -struct cmGeneratorExpressionContext -{ - cmListFileBacktrace Backtrace; - std::set<cmTarget*> DependTargets; - std::set<cmTarget*> AllTargets; - std::set<cmStdString> SeenTargetProperties; - cmMakefile *Makefile; - const char *Config; - cmTarget *HeadTarget; // The target whose property is being evaluated. - cmTarget *CurrentTarget; // The dependent of HeadTarget which appears - // directly or indirectly in the property. - bool Quiet; - bool HadError; - bool HadContextSensitiveCondition; -}; +#include <stddef.h> +#include <string> +#include <vector> +struct cmGeneratorExpressionContext; struct cmGeneratorExpressionDAGChecker; struct cmGeneratorExpressionNode; -//---------------------------------------------------------------------------- struct cmGeneratorExpressionEvaluator { cmGeneratorExpressionEvaluator() {} @@ -53,95 +26,88 @@ struct cmGeneratorExpressionEvaluator virtual Type GetType() const = 0; - virtual std::string Evaluate(cmGeneratorExpressionContext *context, - cmGeneratorExpressionDAGChecker *) const = 0; + virtual std::string Evaluate(cmGeneratorExpressionContext* context, + cmGeneratorExpressionDAGChecker*) const = 0; private: - cmGeneratorExpressionEvaluator(const cmGeneratorExpressionEvaluator &); - void operator=(const cmGeneratorExpressionEvaluator &); + CM_DISABLE_COPY(cmGeneratorExpressionEvaluator) }; struct TextContent : public cmGeneratorExpressionEvaluator { - TextContent(const char *start, unsigned int length) - : Content(start), Length(length) + TextContent(const char* start, size_t length) + : Content(start) + , Length(length) { - } - std::string Evaluate(cmGeneratorExpressionContext *, - cmGeneratorExpressionDAGChecker *) const + std::string Evaluate(cmGeneratorExpressionContext*, + cmGeneratorExpressionDAGChecker*) const CM_OVERRIDE { return std::string(this->Content, this->Length); } - Type GetType() const + Type GetType() const CM_OVERRIDE { return cmGeneratorExpressionEvaluator::Text; } - void Extend(unsigned int length) - { - this->Length += length; - } + void Extend(size_t length) { this->Length += length; } - unsigned int GetLength() - { - return this->Length; - } + size_t GetLength() { return this->Length; } private: - const char *Content; - unsigned int Length; + const char* Content; + size_t Length; }; -//---------------------------------------------------------------------------- struct GeneratorExpressionContent : public cmGeneratorExpressionEvaluator { - GeneratorExpressionContent(const char *startContent, unsigned int length); - void SetIdentifier(std::vector<cmGeneratorExpressionEvaluator*> identifier) + GeneratorExpressionContent(const char* startContent, size_t length); + void SetIdentifier( + std::vector<cmGeneratorExpressionEvaluator*> const& identifier) { this->IdentifierChildren = identifier; } void SetParameters( - std::vector<std::vector<cmGeneratorExpressionEvaluator*> > parameters) + std::vector<std::vector<cmGeneratorExpressionEvaluator*> > const& + parameters) { this->ParamChildren = parameters; } - Type GetType() const + Type GetType() const CM_OVERRIDE { return cmGeneratorExpressionEvaluator::Generator; } - std::string Evaluate(cmGeneratorExpressionContext *context, - cmGeneratorExpressionDAGChecker *) const; + std::string Evaluate(cmGeneratorExpressionContext* context, + cmGeneratorExpressionDAGChecker*) const CM_OVERRIDE; std::string GetOriginalExpression() const; - ~GeneratorExpressionContent(); + ~GeneratorExpressionContent() CM_OVERRIDE; private: - std::string EvaluateParameters(const cmGeneratorExpressionNode *node, - const std::string &identifier, - cmGeneratorExpressionContext *context, - cmGeneratorExpressionDAGChecker *dagChecker, - std::vector<std::string> ¶meters) const; + std::string EvaluateParameters(const cmGeneratorExpressionNode* node, + const std::string& identifier, + cmGeneratorExpressionContext* context, + cmGeneratorExpressionDAGChecker* dagChecker, + std::vector<std::string>& parameters) const; std::string ProcessArbitraryContent( - const cmGeneratorExpressionNode *node, - const std::string &identifier, - cmGeneratorExpressionContext *context, - cmGeneratorExpressionDAGChecker *dagChecker, + const cmGeneratorExpressionNode* node, const std::string& identifier, + cmGeneratorExpressionContext* context, + cmGeneratorExpressionDAGChecker* dagChecker, std::vector<std::vector<cmGeneratorExpressionEvaluator*> >::const_iterator - pit) const; + pit) const; private: std::vector<cmGeneratorExpressionEvaluator*> IdentifierChildren; std::vector<std::vector<cmGeneratorExpressionEvaluator*> > ParamChildren; - const char *StartContent; - unsigned int ContentLength; + const char* StartContent; + size_t ContentLength; }; #endif |