| 3980 | } |
| 3981 | |
| 3982 | cmValue cmLocalGenerator::GetFeature(std::string const& feature, |
| 3983 | std::string const& config) |
| 3984 | { |
| 3985 | std::string featureName = feature; |
| 3986 | // TODO: Define accumulation policy for features (prepend, append, |
| 3987 | // replace). Currently we always replace. |
| 3988 | if (!config.empty()) { |
| 3989 | featureName += "_"; |
| 3990 | featureName += cmSystemTools::UpperCase(config); |
| 3991 | } |
| 3992 | cmStateSnapshot snp = this->StateSnapshot; |
| 3993 | while (snp.IsValid()) { |
| 3994 | if (cmValue value = snp.GetDirectory().GetProperty(featureName)) { |
| 3995 | return value; |
| 3996 | } |
| 3997 | snp = snp.GetBuildsystemDirectoryParent(); |
| 3998 | } |
| 3999 | return nullptr; |
| 4000 | } |
| 4001 | |
| 4002 | std::string cmLocalGenerator::GetProjectName() const |
| 4003 | { |
no test coverage detected