parent
9c81f2cb8b
commit
058b8a0bfb
@ -1077,29 +1077,30 @@ bool HandleTargetsMode(std::vector<std::string> const& args,
|
||||
|
||||
if (!namelinkOnly) {
|
||||
for (std::size_t i = 0; i < fileSetArgs.size(); i++) {
|
||||
auto* fileSet = target.GetFileSet(fileSetArgs[i].GetFileSet());
|
||||
auto interfaceFileSetEntries = cmExpandedList(target.GetSafeProperty(
|
||||
cmTarget::GetInterfaceFileSetsPropertyName(fileSet->GetType())));
|
||||
if (fileSet &&
|
||||
std::find(
|
||||
interfaceFileSetEntries.begin(), interfaceFileSetEntries.end(),
|
||||
fileSetArgs[i].GetFileSet()) != interfaceFileSetEntries.end()) {
|
||||
std::string destination;
|
||||
if (fileSet->GetType() == "HEADERS"_s) {
|
||||
destination = helper.GetIncludeDestination(&fileSetArgs[i]);
|
||||
} else {
|
||||
destination = fileSetArgs[i].GetDestination();
|
||||
if (destination.empty()) {
|
||||
status.SetError(
|
||||
cmStrCat("TARGETS given no FILE_SET DESTINATION for target \"",
|
||||
target.GetName(), "\" file set \"",
|
||||
fileSet->GetName(), "\"."));
|
||||
return false;
|
||||
if (auto* fileSet = target.GetFileSet(fileSetArgs[i].GetFileSet())) {
|
||||
auto interfaceFileSetEntries = cmExpandedList(target.GetSafeProperty(
|
||||
cmTarget::GetInterfaceFileSetsPropertyName(fileSet->GetType())));
|
||||
if (std::find(interfaceFileSetEntries.begin(),
|
||||
interfaceFileSetEntries.end(),
|
||||
fileSetArgs[i].GetFileSet()) !=
|
||||
interfaceFileSetEntries.end()) {
|
||||
std::string destination;
|
||||
if (fileSet->GetType() == "HEADERS"_s) {
|
||||
destination = helper.GetIncludeDestination(&fileSetArgs[i]);
|
||||
} else {
|
||||
destination = fileSetArgs[i].GetDestination();
|
||||
if (destination.empty()) {
|
||||
status.SetError(cmStrCat(
|
||||
"TARGETS given no FILE_SET DESTINATION for target \"",
|
||||
target.GetName(), "\" file set \"", fileSet->GetName(),
|
||||
"\"."));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
fileSetGenerators.push_back(CreateInstallFileSetGenerator(
|
||||
helper, target, fileSet, destination, fileSetArgs[i]));
|
||||
installsFileSet[i] = true;
|
||||
}
|
||||
fileSetGenerators.push_back(CreateInstallFileSetGenerator(
|
||||
helper, target, fileSet, destination, fileSetArgs[i]));
|
||||
installsFileSet[i] = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,4 @@
|
||||
enable_language(C)
|
||||
|
||||
add_library(lib1 STATIC empty.c)
|
||||
install(TARGETS lib1 FILE_SET a)
|
@ -36,6 +36,7 @@ run_cmake(FileSetInstallMissingSetsInterface)
|
||||
run_cmake(FileSetNoScope)
|
||||
run_cmake(FileSetNoExistPrivate)
|
||||
run_cmake(FileSetNoExistInterface)
|
||||
run_cmake(FileSetNoExistInstall)
|
||||
run_cmake(FileSetDirectories)
|
||||
|
||||
set(RunCMake_TEST_OPTIONS -DCMAKE_POLICY_DEFAULT_CMP0115=NEW)
|
||||
|
Loading…
Reference in New Issue
Block a user