Genex: Split cmGeneratorExpressionNode into own file.

This commit is contained in:
Stephen Kelly 2015-02-22 23:32:11 +01:00
parent 80b9f0cbe2
commit 9df1f0fce1
5 changed files with 1946 additions and 1889 deletions

View File

@ -244,6 +244,8 @@ set(SRCS
cmGeneratorExpressionEvaluator.h
cmGeneratorExpressionLexer.cxx
cmGeneratorExpressionLexer.h
cmGeneratorExpressionNode.cxx
cmGeneratorExpressionNode.h
cmGeneratorExpressionParser.cxx
cmGeneratorExpressionParser.h
cmGeneratorExpression.cxx

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,70 @@
/*============================================================================
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.
============================================================================*/
#ifndef cmGeneratorExpressionNode_h
#define cmGeneratorExpressionNode_h
#include "cmMakefile.h"
#include "cmGeneratorExpressionEvaluator.h"
#include "cmGeneratorExpressionParser.h"
#include "cmGeneratorExpressionDAGChecker.h"
#include "cmGeneratorExpression.h"
#include "cmLocalGenerator.h"
#include "cmSourceFile.h"
#include <cmsys/String.h>
#include <assert.h>
#include <errno.h>
#include "cmListFileCache.h"
//----------------------------------------------------------------------------
struct cmGeneratorExpressionNode
{
enum {
DynamicParameters = 0,
OneOrMoreParameters = -1,
OneOrZeroParameters = -2
};
virtual ~cmGeneratorExpressionNode() {}
virtual bool GeneratesContent() const { return true; }
virtual bool RequiresLiteralInput() const { return false; }
virtual bool AcceptsArbitraryContentParameter() const
{ return false; }
virtual int NumExpectedParameters() const { return 1; }
virtual std::string Evaluate(const std::vector<std::string> &parameters,
cmGeneratorExpressionContext *context,
const GeneratorExpressionContent *content,
cmGeneratorExpressionDAGChecker *dagChecker
) const = 0;
static std::string EvaluateDependentExpression(
std::string const& prop, cmMakefile *makefile,
cmGeneratorExpressionContext *context,
cmTarget const* headTarget, cmTarget const* currentTarget,
cmGeneratorExpressionDAGChecker *dagChecker);
static const cmGeneratorExpressionNode* GetNode(
const std::string &identifier);
};
//----------------------------------------------------------------------------
void reportError(cmGeneratorExpressionContext *context,
const std::string &expr, const std::string &result);
#endif

View File

@ -270,6 +270,7 @@ CMAKE_CXX_SOURCES="\
cmGeneratorExpressionDAGChecker \
cmGeneratorExpressionEvaluator \
cmGeneratorExpressionLexer \
cmGeneratorExpressionNode \
cmGeneratorExpressionParser \
cmGeneratorExpression \
cmGlobalGenerator \