mirror of
https://github.com/Kitware/CMake.git
synced 2026-02-17 20:50:43 -06:00
Merge branch 'objlib-own-target-objs' into release-3.9
This commit is contained in:
@@ -1025,12 +1025,23 @@ cmGeneratorTarget::KindedSources const& cmGeneratorTarget::GetKindedSources(
|
||||
std::string const key = cmSystemTools::UpperCase(config);
|
||||
KindedSourcesMapType::iterator it = this->KindedSourcesMap.find(key);
|
||||
if (it != this->KindedSourcesMap.end()) {
|
||||
if (!it->second.Initialized) {
|
||||
std::ostringstream e;
|
||||
e << "The SOURCES of \"" << this->GetName()
|
||||
<< "\" use a generator expression that depends on the "
|
||||
"SOURCES themselves.";
|
||||
this->GlobalGenerator->GetCMakeInstance()->IssueMessage(
|
||||
cmake::FATAL_ERROR, e.str(), this->GetBacktrace());
|
||||
static KindedSources empty;
|
||||
return empty;
|
||||
}
|
||||
return it->second;
|
||||
}
|
||||
|
||||
// Add an entry to the map for this configuration.
|
||||
KindedSources& files = this->KindedSourcesMap[key];
|
||||
this->ComputeKindedSources(files, config);
|
||||
files.Initialized = true;
|
||||
return files;
|
||||
}
|
||||
|
||||
|
||||
@@ -107,6 +107,11 @@ public:
|
||||
std::set<std::string> ExpectedResxHeaders;
|
||||
std::set<std::string> ExpectedXamlHeaders;
|
||||
std::set<std::string> ExpectedXamlSources;
|
||||
bool Initialized;
|
||||
KindedSources()
|
||||
: Initialized(false)
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
/** Get all sources needed for a configuration with kinds assigned. */
|
||||
|
||||
1
Tests/RunCMake/ObjectLibrary/OwnSources-result.txt
Normal file
1
Tests/RunCMake/ObjectLibrary/OwnSources-result.txt
Normal file
@@ -0,0 +1 @@
|
||||
1
|
||||
5
Tests/RunCMake/ObjectLibrary/OwnSources-stderr.txt
Normal file
5
Tests/RunCMake/ObjectLibrary/OwnSources-stderr.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
^CMake Error at OwnSources.cmake:[0-9]+ \(add_library\):
|
||||
The SOURCES of "A" use a generator expression that depends on the SOURCES
|
||||
themselves.
|
||||
Call Stack \(most recent call first\):
|
||||
CMakeLists.txt:[0-9]+ \(include\)$
|
||||
2
Tests/RunCMake/ObjectLibrary/OwnSources.cmake
Normal file
2
Tests/RunCMake/ObjectLibrary/OwnSources.cmake
Normal file
@@ -0,0 +1,2 @@
|
||||
add_library(A OBJECT a.c)
|
||||
target_sources(A PRIVATE $<TARGET_OBJECTS:A>)
|
||||
@@ -19,6 +19,7 @@ run_cmake(LinkObjRHS1)
|
||||
run_cmake(LinkObjRHS2)
|
||||
run_cmake(MissingSource)
|
||||
run_cmake(ObjWithObj)
|
||||
run_cmake(OwnSources)
|
||||
run_cmake(PostBuild)
|
||||
run_cmake(PreBuild)
|
||||
run_cmake(PreLink)
|
||||
|
||||
Reference in New Issue
Block a user