Coverage Report

Created: 2026-03-12 06:35

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/CMake/Source/cmTargetPropertyEntry.h
Line
Count
Source
1
/* Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
2
   file LICENSE.rst or https://cmake.org/licensing for details.  */
3
#pragma once
4
5
#include <memory>
6
#include <string>
7
8
#include "cmListFileCache.h"
9
10
class cmLinkItem;
11
class cmake;
12
class cmGeneratorTarget;
13
struct cmGeneratorExpressionDAGChecker;
14
15
namespace cm {
16
namespace GenEx {
17
struct Context;
18
}
19
20
class TargetPropertyEntry
21
{
22
protected:
23
  static cmLinkItem NoLinkItem;
24
25
public:
26
  TargetPropertyEntry(cmLinkItem const& item);
27
0
  virtual ~TargetPropertyEntry() = default;
28
29
  static std::unique_ptr<TargetPropertyEntry> Create(
30
    cmake& cmakeInstance, const BT<std::string>& propertyValue,
31
    bool evaluateForBuildsystem = false);
32
33
  virtual std::string const& Evaluate(
34
    cm::GenEx::Context const& context, cmGeneratorTarget const* headTarget,
35
    cmGeneratorExpressionDAGChecker* dagChecker) const = 0;
36
37
  virtual cmListFileBacktrace GetBacktrace() const = 0;
38
  virtual std::string const& GetInput() const = 0;
39
  virtual bool GetHadContextSensitiveCondition() const;
40
41
  cmLinkItem const& LinkItem;
42
};
43
}