MCPcopy Create free account
hub / github.com/Kitware/CMake / GenerateHeaderSetVerificationFile

Method GenerateHeaderSetVerificationFile

Source/cmGeneratorTarget.cxx:5986–6065  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

5984}
5985
5986std::string cmGeneratorTarget::GenerateHeaderSetVerificationFile(
5987 cmSourceFile& source, std::string const& dir,
5988 std::string const& verifyTargetName,
5989 cm::optional<std::set<std::string>>& languages) const
5990{
5991 std::string extension;
5992 std::string language = source.GetOrDetermineLanguage();
5993
5994 if (source.GetPropertyAsBool("SKIP_LINTING")) {
5995 return std::string{};
5996 }
5997
5998 if (language.empty()) {
5999 if (!languages) {
6000 languages.emplace();
6001 for (auto const& tgtSource : this->GetAllConfigSources()) {
6002 auto const& tgtSourceLanguage =
6003 tgtSource.Source->GetOrDetermineLanguage();
6004 if (tgtSourceLanguage == "CXX") {
6005 languages->insert("CXX");
6006 break; // C++ overrides everything else, so we don't need to keep
6007 // checking.
6008 }
6009 if (tgtSourceLanguage == "C") {
6010 languages->insert("C");
6011 }
6012 }
6013
6014 if (languages->empty()) {
6015 std::vector<std::string> languagesVector;
6016 this->GlobalGenerator->GetEnabledLanguages(languagesVector);
6017 languages->insert(languagesVector.begin(), languagesVector.end());
6018 }
6019 }
6020
6021 if (languages->count("CXX")) {
6022 language = "CXX";
6023 } else if (languages->count("C")) {
6024 language = "C";
6025 }
6026 }
6027
6028 if (language == "C") {
6029 extension = ".c";
6030 } else if (language == "CXX") {
6031 extension = ".cxx";
6032 } else {
6033 return "";
6034 }
6035
6036 std::string headerFilename = dir;
6037 if (!headerFilename.empty()) {
6038 headerFilename += '/';
6039 }
6040 headerFilename += source.GetLocation().GetName();
6041
6042 auto filename =
6043 cmStrCat(this->LocalGenerator->GetCurrentBinaryDirectory(), '/',

Callers 1

Calls 15

GetAllConfigSourcesMethod · 0.95
emplaceMethod · 0.80
GetOrCreateSourceMethod · 0.80
SetSpecialSourceTypeMethod · 0.80
SetCopyIfDifferentMethod · 0.80
cmStrCatFunction · 0.70
GetPropertyAsBoolMethod · 0.45
emptyMethod · 0.45
insertMethod · 0.45
GetEnabledLanguagesMethod · 0.45
beginMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected