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

Method GetConfigCommonSourceFilesForXcode

Source/cmGeneratorTarget.cxx:4931–4977  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4929}
4930
4931bool cmGeneratorTarget::GetConfigCommonSourceFilesForXcode(
4932 std::vector<cmSourceFile*>& files) const
4933{
4934 std::vector<std::string> const& configs =
4935 this->Makefile->GetGeneratorConfigs(cmMakefile::IncludeEmptyConfig);
4936
4937 auto it = configs.begin();
4938 std::string const& firstConfig = *it;
4939 this->GetSourceFilesWithoutObjectLibraries(files, firstConfig);
4940
4941 for (; it != configs.end(); ++it) {
4942 std::vector<cmSourceFile*> configFiles;
4943 this->GetSourceFilesWithoutObjectLibraries(configFiles, *it);
4944 if (configFiles != files) {
4945 std::string firstConfigFiles;
4946 char const* sep = "";
4947 for (cmSourceFile* f : files) {
4948 firstConfigFiles += sep;
4949 firstConfigFiles += f->ResolveFullPath();
4950 sep = "\n ";
4951 }
4952
4953 std::string thisConfigFiles;
4954 sep = "";
4955 for (cmSourceFile* f : configFiles) {
4956 thisConfigFiles += sep;
4957 thisConfigFiles += f->ResolveFullPath();
4958 sep = "\n ";
4959 }
4960 std::ostringstream e;
4961 /* clang-format off */
4962 e << "Target \"" << this->GetName()
4963 << "\" has source files which vary by "
4964 "configuration. This is not supported by the \""
4965 << this->GlobalGenerator->GetName()
4966 << "\" generator.\n"
4967 "Config \"" << firstConfig << "\":\n"
4968 " " << firstConfigFiles << "\n"
4969 "Config \"" << *it << "\":\n"
4970 " " << thisConfigFiles << "\n";
4971 /* clang-format on */
4972 this->LocalGenerator->IssueMessage(MessageType::FATAL_ERROR, e.str());
4973 return false;
4974 }
4975 }
4976 return true;
4977}
4978
4979void cmGeneratorTarget::GetObjectLibrariesInSources(
4980 std::vector<BT<cmGeneratorTarget*>>& objlibs) const

Callers 4

CreateXCodeTargetMethod · 0.80
CreateCustomCommandsMethod · 0.80
CreateUtilityTargetMethod · 0.80

Calls 7

GetGeneratorConfigsMethod · 0.80
strMethod · 0.80
beginMethod · 0.45
endMethod · 0.45
GetNameMethod · 0.45
IssueMessageMethod · 0.45

Tested by

no test coverage detected