b22e5d0ab7
Ensure that cmStandardIncludes.h is included before any platform header in cmGeneratorExpressionEvaluator.h. That file needs to change as a result of removal of the cmMakefile.h header from cmGeneratorExpressionNode.h, affecting the compilation of cmGeneratorExpressionNode.cxx. On AIX we need to include our own headers first to get large file support macros defined consistently within system headers. The old order in this header worked only because it was always included after other headers.
70 lines
2.4 KiB
C++
70 lines
2.4 KiB
C++
/*============================================================================
|
|
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 "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> ¶meters,
|
|
cmGeneratorExpressionContext *context,
|
|
const GeneratorExpressionContent *content,
|
|
cmGeneratorExpressionDAGChecker *dagChecker
|
|
) const = 0;
|
|
|
|
static std::string EvaluateDependentExpression(
|
|
std::string const& prop, cmLocalGenerator *lg,
|
|
cmGeneratorExpressionContext *context,
|
|
const cmGeneratorTarget* headTarget,
|
|
const cmGeneratorTarget* currentTarget,
|
|
cmGeneratorExpressionDAGChecker *dagChecker);
|
|
|
|
static const cmGeneratorExpressionNode* GetNode(
|
|
const std::string &identifier);
|
|
};
|
|
|
|
//----------------------------------------------------------------------------
|
|
void reportError(cmGeneratorExpressionContext *context,
|
|
const std::string &expr, const std::string &result);
|
|
|
|
#endif
|