summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-util/cmake/files/cmake-3.19.1-fix-spurious-include-target.patch')
-rw-r--r--dev-util/cmake/files/cmake-3.19.1-fix-spurious-include-target.patch198
1 files changed, 0 insertions, 198 deletions
diff --git a/dev-util/cmake/files/cmake-3.19.1-fix-spurious-include-target.patch b/dev-util/cmake/files/cmake-3.19.1-fix-spurious-include-target.patch
deleted file mode 100644
index 1b51cf013fe5..000000000000
--- a/dev-util/cmake/files/cmake-3.19.1-fix-spurious-include-target.patch
+++ /dev/null
@@ -1,198 +0,0 @@
-From 38bcb5c0a3accd2dd29fb7632c6b3bf31b990d82 Mon Sep 17 00:00:00 2001
-From: Deniz Bahadir <dbahadir@benocs.com>
-Date: Tue, 1 Dec 2020 00:25:39 +0100
-Subject: [PATCH] export: Do not fail generation for separate namelink only
- case
-
-Update the change from commit 64690f6df0 (export: Do not fail generation
-for namelink-only case, 2020-10-09, v3.19.0-rc1~7^2) to also handle
-separate namelink-only and namelink-skip calls.
-
-Fixes: #21529
----
- Source/cmExportBuildFileGenerator.cxx | 3 +++
- Source/cmExportInstallFileGenerator.cxx | 3 +++
- Source/cmInstallCommand.cxx | 19 +++++++++++--------
- Source/cmTargetExport.h | 2 ++
- Tests/RunCMake/export/RunCMakeTest.cmake | 1 +
- .../export/SeparateNamelinkExport.cmake | 16 ++++++++++++++++
- .../install/EXPORT-SeparateNamelink.cmake | 19 +++++++++++++++++++
- Tests/RunCMake/install/RunCMakeTest.cmake | 1 +
- 8 files changed, 56 insertions(+), 8 deletions(-)
- create mode 100644 Tests/RunCMake/export/SeparateNamelinkExport.cmake
- create mode 100644 Tests/RunCMake/install/EXPORT-SeparateNamelink.cmake
-
-diff --git a/Source/cmExportBuildFileGenerator.cxx b/Source/cmExportBuildFileGenerator.cxx
-index dd700c5edf..1a31ae4afd 100644
---- a/Source/cmExportBuildFileGenerator.cxx
-+++ b/Source/cmExportBuildFileGenerator.cxx
-@@ -288,6 +288,9 @@ void cmExportBuildFileGenerator::GetTargets(
- if (this->ExportSet) {
- for (std::unique_ptr<cmTargetExport> const& te :
- this->ExportSet->GetTargetExports()) {
-+ if (te->NamelinkOnly) {
-+ continue;
-+ }
- targets.push_back(te->TargetName);
- }
- return;
-diff --git a/Source/cmExportInstallFileGenerator.cxx b/Source/cmExportInstallFileGenerator.cxx
-index 987ec9ea7b..0b9b183d54 100644
---- a/Source/cmExportInstallFileGenerator.cxx
-+++ b/Source/cmExportInstallFileGenerator.cxx
-@@ -42,6 +42,9 @@ bool cmExportInstallFileGenerator::GenerateMainFile(std::ostream& os)
- std::string sep;
- for (std::unique_ptr<cmTargetExport> const& te :
- this->IEGen->GetExportSet()->GetTargetExports()) {
-+ if (te->NamelinkOnly) {
-+ continue;
-+ }
- expectedTargets += sep + this->Namespace + te->Target->GetExportName();
- sep = " ";
- if (this->ExportedTargets.insert(te->Target).second) {
-diff --git a/Source/cmInstallCommand.cxx b/Source/cmInstallCommand.cxx
-index b99e6a3c6c..ff08ee41ef 100644
---- a/Source/cmInstallCommand.cxx
-+++ b/Source/cmInstallCommand.cxx
-@@ -461,6 +461,13 @@ bool HandleTargetsMode(std::vector<std::string> const& args,
- std::unique_ptr<cmInstallFilesGenerator> publicHeaderGenerator;
- std::unique_ptr<cmInstallFilesGenerator> resourceGenerator;
-
-+ // Avoid selecting default destinations for PUBLIC_HEADER and
-+ // PRIVATE_HEADER if any artifacts are specified.
-+ bool artifactsSpecified = false;
-+
-+ // Track whether this is a namelink-only rule.
-+ bool namelinkOnly = false;
-+
- auto addTargetExport = [&]() {
- // Add this install rule to an export if one was specified.
- if (!exports.empty()) {
-@@ -475,20 +482,13 @@ bool HandleTargetsMode(std::vector<std::string> const& args,
- te->ObjectsGenerator = objectGenerator.get();
- te->InterfaceIncludeDirectories =
- cmJoin(includesArgs.GetIncludeDirs(), ";");
--
-+ te->NamelinkOnly = namelinkOnly;
- helper.Makefile->GetGlobalGenerator()
- ->GetExportSets()[exports]
- .AddTargetExport(std::move(te));
- }
- };
-
-- // Avoid selecting default destinations for PUBLIC_HEADER and
-- // PRIVATE_HEADER if any artifacts are specified.
-- bool artifactsSpecified = false;
--
-- // Track whether this is a namelink-only rule.
-- bool namelinkOnly = false;
--
- switch (target.GetType()) {
- case cmStateEnums::SHARED_LIBRARY: {
- // Shared libraries are handled differently on DLL and non-DLL
-@@ -497,6 +497,7 @@ bool HandleTargetsMode(std::vector<std::string> const& args,
- if (target.IsDLLPlatform()) {
- // When in namelink only mode skip all libraries on Windows.
- if (namelinkMode == cmInstallTargetGenerator::NamelinkModeOnly) {
-+ namelinkOnly = true;
- addTargetExport();
- continue;
- }
-@@ -529,6 +530,7 @@ bool HandleTargetsMode(std::vector<std::string> const& args,
- if (target.IsFrameworkOnApple()) {
- // When in namelink only mode skip frameworks.
- if (namelinkMode == cmInstallTargetGenerator::NamelinkModeOnly) {
-+ namelinkOnly = true;
- addTargetExport();
- continue;
- }
-@@ -574,6 +576,7 @@ bool HandleTargetsMode(std::vector<std::string> const& args,
- if (target.IsFrameworkOnApple()) {
- // When in namelink only mode skip frameworks.
- if (namelinkMode == cmInstallTargetGenerator::NamelinkModeOnly) {
-+ namelinkOnly = true;
- addTargetExport();
- continue;
- }
-diff --git a/Source/cmTargetExport.h b/Source/cmTargetExport.h
-index cb4d8dae44..1e38d84923 100644
---- a/Source/cmTargetExport.h
-+++ b/Source/cmTargetExport.h
-@@ -31,4 +31,6 @@ public:
- cmInstallFilesGenerator* HeaderGenerator;
- std::string InterfaceIncludeDirectories;
- ///@}
-+
-+ bool NamelinkOnly = false;
- };
-diff --git a/Tests/RunCMake/export/RunCMakeTest.cmake b/Tests/RunCMake/export/RunCMakeTest.cmake
-index 95c8d5cf45..0e6020f0f4 100644
---- a/Tests/RunCMake/export/RunCMakeTest.cmake
-+++ b/Tests/RunCMake/export/RunCMakeTest.cmake
-@@ -17,3 +17,4 @@ run_cmake(DependOnNotExport)
- run_cmake(DependOnDoubleExport)
- run_cmake(UnknownExport)
- run_cmake(NamelinkOnlyExport)
-+run_cmake(SeparateNamelinkExport)
-diff --git a/Tests/RunCMake/export/SeparateNamelinkExport.cmake b/Tests/RunCMake/export/SeparateNamelinkExport.cmake
-new file mode 100644
-index 0000000000..b006aea128
---- /dev/null
-+++ b/Tests/RunCMake/export/SeparateNamelinkExport.cmake
-@@ -0,0 +1,16 @@
-+enable_language(CXX)
-+add_library(foo SHARED empty.cpp)
-+install(TARGETS foo EXPORT fooExport
-+ RUNTIME DESTINATION bin
-+ LIBRARY
-+ DESTINATION lib
-+ COMPONENT runtime
-+ NAMELINK_SKIP
-+)
-+install(TARGETS foo EXPORT fooExport
-+ LIBRARY
-+ DESTINATION lib
-+ COMPONENT development
-+ NAMELINK_ONLY
-+)
-+export(EXPORT fooExport FILE "${CMAKE_CURRENT_BINARY_DIR}/foo.cmake")
-diff --git a/Tests/RunCMake/install/EXPORT-SeparateNamelink.cmake b/Tests/RunCMake/install/EXPORT-SeparateNamelink.cmake
-new file mode 100644
-index 0000000000..5c6fa10d18
---- /dev/null
-+++ b/Tests/RunCMake/install/EXPORT-SeparateNamelink.cmake
-@@ -0,0 +1,19 @@
-+enable_language(C)
-+add_library(foo SHARED empty.c)
-+install(TARGETS foo EXPORT fooExport
-+ RUNTIME DESTINATION bin
-+ LIBRARY
-+ DESTINATION lib
-+ COMPONENT runtime
-+ NAMELINK_SKIP
-+)
-+install(TARGETS foo EXPORT fooExport
-+ LIBRARY
-+ DESTINATION lib
-+ COMPONENT development
-+ NAMELINK_ONLY
-+)
-+install(EXPORT fooExport
-+ DESTINATION "lib/cmake/"
-+ FILE "foo.cmake"
-+)
-diff --git a/Tests/RunCMake/install/RunCMakeTest.cmake b/Tests/RunCMake/install/RunCMakeTest.cmake
-index 5aab88ca80..d64d88b770 100644
---- a/Tests/RunCMake/install/RunCMakeTest.cmake
-+++ b/Tests/RunCMake/install/RunCMakeTest.cmake
-@@ -78,6 +78,7 @@ run_cmake(TARGETS-DESTINATION-bad)
- run_cmake(EXPORT-OldIFace)
- run_cmake(EXPORT-UnknownExport)
- run_cmake(EXPORT-NamelinkOnly)
-+run_cmake(EXPORT-SeparateNamelink)
- run_cmake(CMP0062-OLD)
- run_cmake(CMP0062-NEW)
- run_cmake(CMP0062-WARN)
---
-GitLab
-