/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying file LICENSE.rst or https://cmake.org/licensing for details. */ #pragma once #include #include #include #include "cmGenExContext.h" #include "cmListFileCache.h" class cmGeneratorTarget; namespace cm { namespace GenEx { struct Evaluation final { Evaluation(GenEx::Context context, bool quiet, cmGeneratorTarget const* headTarget, cmGeneratorTarget const* currentTarget, bool evaluateForBuildsystem, cmListFileBacktrace backtrace); GenEx::Context const Context; cmListFileBacktrace Backtrace; std::set DependTargets; std::set AllTargets; std::set SeenTargetProperties; std::set SourceSensitiveTargets; std::map> MaxLanguageStandard; // The target whose property is being evaluated. cmGeneratorTarget const* HeadTarget; // The dependent of HeadTarget which appears // directly or indirectly in the property. cmGeneratorTarget const* CurrentTarget; bool Quiet; bool HadError = false; bool HadContextSensitiveCondition = false; bool HadHeadSensitiveCondition = false; bool HadLinkLanguageSensitiveCondition = false; bool EvaluateForBuildsystem; }; } }