From 42e5be8cefd98e819df9b6a5edce7023007f305e Mon Sep 17 00:00:00 2001 From: Kyle Edwards Date: Mon, 10 Apr 2023 14:14:05 -0400 Subject: install(EXPORT): Fall back to set_property(APPEND) for FILE_SET FILE_SET was introduced in CMake 3.23, so install(EXPORT) puts it behind a version gate. However, this results in the include directories not being picked up by older versions of CMake. Fall back to set_property(APPEND) for versions of CMake older than 3.23. Fixes: #24787 --- Source/cmExportFileGenerator.cxx | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'Source/cmExportFileGenerator.cxx') diff --git a/Source/cmExportFileGenerator.cxx b/Source/cmExportFileGenerator.cxx index 6e7ef4e735..511b28d393 100644 --- a/Source/cmExportFileGenerator.cxx +++ b/Source/cmExportFileGenerator.cxx @@ -1309,7 +1309,22 @@ void cmExportFileGenerator::GenerateTargetFileSets(cmGeneratorTarget* gte, << this->GetFileSetFiles(gte, fileSet, te) << "\n"; } - os << " )\nendif()\n\n"; + os << " )\nelse()\n set_property(TARGET " << targetName + << "\n APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES"; + for (auto const& name : interfaceFileSets) { + auto* fileSet = gte->Target->GetFileSet(name); + if (!fileSet) { + gte->Makefile->IssueMessage( + MessageType::FATAL_ERROR, + cmStrCat("File set \"", name, + "\" is listed in interface file sets of ", gte->GetName(), + " but has not been created")); + return; + } + + os << "\n " << this->GetFileSetDirectories(gte, fileSet, te); + } + os << "\n )\nendif()\n\n"; } } -- cgit v1.2.1