From 5617c34c3135f7ec203d5a48b803eb323f458bc3 Mon Sep 17 00:00:00 2001 From: Marc Chevrier Date: Sun, 16 Jun 2024 15:37:37 +0200 Subject: [PATCH] Libraries processing: update configuration wording --- Modules/Platform/AIX-GNU.cmake | 2 +- Modules/Platform/AIX-XL.cmake | 2 +- Modules/Platform/Apple-Clang.cmake | 2 +- Modules/Platform/Windows-Clang.cmake | 2 +- Modules/Platform/Windows-MSVC.cmake | 2 +- Source/cmComputeLinkDepends.cxx | 23 +++++++++++-------- .../InvalidConfiguration1.cmake | 2 +- .../InvalidConfiguration2.cmake | 2 +- .../InvalidConfiguration3.cmake | 2 +- .../InvalidConfiguration4-stderr.txt | 2 +- .../InvalidConfiguration4.cmake | 2 +- ...t.txt => Invalid_DEDUPLICATION-result.txt} | 0 ...r.txt => Invalid_DEDUPLICATION-stderr.txt} | 4 ++-- ...CITY.cmake => Invalid_DEDUPLICATION.cmake} | 2 +- .../Invalid_ORDER.cmake | 2 +- .../RunCMakeTest.cmake | 2 +- 16 files changed, 28 insertions(+), 25 deletions(-) rename Tests/RunCMake/LinkLibrariesProcessing/{Invalid_UNICITY-result.txt => Invalid_DEDUPLICATION-result.txt} (100%) rename Tests/RunCMake/LinkLibrariesProcessing/{Invalid_UNICITY-stderr.txt => Invalid_DEDUPLICATION-stderr.txt} (60%) rename Tests/RunCMake/LinkLibrariesProcessing/{Invalid_UNICITY.cmake => Invalid_DEDUPLICATION.cmake} (62%) diff --git a/Modules/Platform/AIX-GNU.cmake b/Modules/Platform/AIX-GNU.cmake index 55a66806f9..f6616fb7c5 100644 --- a/Modules/Platform/AIX-GNU.cmake +++ b/Modules/Platform/AIX-GNU.cmake @@ -17,7 +17,7 @@ macro(__aix_compiler_gnu lang) set(CMAKE_${lang}_VERBOSE_LINK_FLAG "-Wl,-v") set(CMAKE_${lang}_LINK_FLAGS "-Wl,-bnoipath") - set(CMAKE_${lang}_LINK_LIBRARIES_PROCESSING ORDER=REVERSE UNICITY=ALL) + set(CMAKE_${lang}_LINK_LIBRARIES_PROCESSING ORDER=REVERSE DEDUPLICATION=ALL) if(CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 7 OR CMAKE_SYSTEM_VERSION VERSION_LESS 7.1) unset(CMAKE_${lang}_COMPILE_OPTIONS_VISIBILITY) diff --git a/Modules/Platform/AIX-XL.cmake b/Modules/Platform/AIX-XL.cmake index c225de9464..cd202cbbde 100644 --- a/Modules/Platform/AIX-XL.cmake +++ b/Modules/Platform/AIX-XL.cmake @@ -17,7 +17,7 @@ macro(__aix_compiler_xl lang) set(CMAKE_SHARED_MODULE_${lang}_FLAGS " ") set(CMAKE_${lang}_LINK_FLAGS "-Wl,-bnoipath") - set(CMAKE_${lang}_LINK_LIBRARIES_PROCESSING ORDER=REVERSE UNICITY=ALL) + set(CMAKE_${lang}_LINK_LIBRARIES_PROCESSING ORDER=REVERSE DEDUPLICATION=ALL) set(_OBJECTS " ") if(DEFINED CMAKE_XL_CreateExportList AND CMAKE_XL_CreateExportList STREQUAL "") diff --git a/Modules/Platform/Apple-Clang.cmake b/Modules/Platform/Apple-Clang.cmake index 31f42934ea..e0b6cd6ba2 100644 --- a/Modules/Platform/Apple-Clang.cmake +++ b/Modules/Platform/Apple-Clang.cmake @@ -15,7 +15,7 @@ macro(__apple_compiler_clang lang) set(CMAKE_${lang}_SYSTEM_FRAMEWORK_SEARCH_FLAG "-iframework ") endif() - set(CMAKE_${lang}_LINK_LIBRARIES_PROCESSING ORDER=REVERSE UNICITY=ALL) + set(CMAKE_${lang}_LINK_LIBRARIES_PROCESSING ORDER=REVERSE DEDUPLICATION=ALL) set(CMAKE_${lang}_LINK_LIBRARY_USING_FRAMEWORK "-framework ") set(CMAKE_${lang}_LINK_LIBRARY_USING_FRAMEWORK_SUPPORTED TRUE) diff --git a/Modules/Platform/Windows-Clang.cmake b/Modules/Platform/Windows-Clang.cmake index 35055bc472..8c9b79cd71 100644 --- a/Modules/Platform/Windows-Clang.cmake +++ b/Modules/Platform/Windows-Clang.cmake @@ -55,7 +55,7 @@ macro(__windows_compiler_clang_gnu lang) set(CMAKE_SHARED_LIBRARY_${lang}_FLAGS "") set(CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS "-shared") - set(CMAKE_${lang}_LINK_LIBRARIES_PROCESSING ORDER=FORWARD UNICITY=ALL) + set(CMAKE_${lang}_LINK_LIBRARIES_PROCESSING ORDER=FORWARD DEDUPLICATION=ALL) # linker selection set(CMAKE_${lang}_USING_LINKER_DEFAULT "-fuse-ld=lld-link") diff --git a/Modules/Platform/Windows-MSVC.cmake b/Modules/Platform/Windows-MSVC.cmake index c737b88c4e..3a400e5656 100644 --- a/Modules/Platform/Windows-MSVC.cmake +++ b/Modules/Platform/Windows-MSVC.cmake @@ -514,7 +514,7 @@ macro(__windows_compiler_msvc lang) set(CMAKE_${lang}_DEPFILE_FORMAT msvc) endif() - set(CMAKE_${lang}_LINK_LIBRARIES_PROCESSING ORDER=FORWARD UNICITY=ALL) + set(CMAKE_${lang}_LINK_LIBRARIES_PROCESSING ORDER=FORWARD DEDUPLICATION=ALL) # linker selection set(CMAKE_${lang}_USING_LINKER_SYSTEM "${CMAKE_LINKER_LINK}") diff --git a/Source/cmComputeLinkDepends.cxx b/Source/cmComputeLinkDepends.cxx index cc323f4c74..2f24ad78d0 100644 --- a/Source/cmComputeLinkDepends.cxx +++ b/Source/cmComputeLinkDepends.cxx @@ -376,8 +376,10 @@ public: case cmPolicies::NEW: { if (auto libProcessing = makefile->GetDefinition(cmStrCat( "CMAKE_", linkLanguage, "_LINK_LIBRARIES_PROCESSING"))) { + // UNICITY keyword is just for compatibility with previous + // implementation cmsys::RegularExpression processingOption{ - "^(ORDER|UNICITY)=(FORWARD|REVERSE|ALL|NONE|SHARED)$" + "^(ORDER|UNICITY|DEDUPLICATION)=(FORWARD|REVERSE|ALL|NONE|SHARED)$" }; std::string errorMessage; for (auto const& option : cmList{ libProcessing }) { @@ -390,13 +392,14 @@ public: } else { errorMessage += cmStrCat(" ", option, '\n'); } - } else if (processingOption.match(1) == "UNICITY") { + } else if (processingOption.match(1) == "UNICITY" || + processingOption.match(1) == "DEDUPLICATION") { if (processingOption.match(2) == "ALL") { - this->Unicity = All; + this->Deduplication = All; } else if (processingOption.match(2) == "NONE") { - this->Unicity = None; + this->Deduplication = None; } else if (processingOption.match(2) == "SHARED") { - this->Unicity = Shared; + this->Deduplication = Shared; } else { errorMessage += cmStrCat(" ", option, '\n'); } @@ -499,7 +502,7 @@ private: Reverse }; - enum UnicityKind + enum DeduplicationKind { None, Shared, @@ -520,11 +523,11 @@ private: } } - return this->Unicity == None || - (this->Unicity == Shared && + return this->Deduplication == None || + (this->Deduplication == Shared && (entry.Target == nullptr || entry.Target->GetType() != cmStateEnums::SHARED_LIBRARY)) || - (this->Unicity == All && entry.Kind != LinkEntry::Library); + (this->Deduplication == All && entry.Kind != LinkEntry::Library); } template @@ -539,7 +542,7 @@ private: } OrderKind Order = Reverse; - UnicityKind Unicity = Shared; + DeduplicationKind Deduplication = Shared; const cmGeneratorTarget* Target; const std::string& LinkLanguage; EntryVector& Entries; diff --git a/Tests/RunCMake/LinkLibrariesProcessing/InvalidConfiguration1.cmake b/Tests/RunCMake/LinkLibrariesProcessing/InvalidConfiguration1.cmake index e79eb458b2..ac5f7f1138 100644 --- a/Tests/RunCMake/LinkLibrariesProcessing/InvalidConfiguration1.cmake +++ b/Tests/RunCMake/LinkLibrariesProcessing/InvalidConfiguration1.cmake @@ -1,7 +1,7 @@ enable_language(C) -set(CMAKE_C_LINK_LIBRARIES_PROCESSING ORDER= UNICITY=ALL) +set(CMAKE_C_LINK_LIBRARIES_PROCESSING ORDER= DEDUPLICATION=ALL) add_library(lib STATIC lib.c) diff --git a/Tests/RunCMake/LinkLibrariesProcessing/InvalidConfiguration2.cmake b/Tests/RunCMake/LinkLibrariesProcessing/InvalidConfiguration2.cmake index c9da734304..63edfd3710 100644 --- a/Tests/RunCMake/LinkLibrariesProcessing/InvalidConfiguration2.cmake +++ b/Tests/RunCMake/LinkLibrariesProcessing/InvalidConfiguration2.cmake @@ -1,7 +1,7 @@ enable_language(C) -set(CMAKE_C_LINK_LIBRARIES_PROCESSING UNICITY=ALL ORDER) +set(CMAKE_C_LINK_LIBRARIES_PROCESSING DEDUPLICATION=ALL ORDER) add_library(lib STATIC lib.c) diff --git a/Tests/RunCMake/LinkLibrariesProcessing/InvalidConfiguration3.cmake b/Tests/RunCMake/LinkLibrariesProcessing/InvalidConfiguration3.cmake index a1311fe129..0bd7c5fadc 100644 --- a/Tests/RunCMake/LinkLibrariesProcessing/InvalidConfiguration3.cmake +++ b/Tests/RunCMake/LinkLibrariesProcessing/InvalidConfiguration3.cmake @@ -1,7 +1,7 @@ enable_language(C) -set(CMAKE_C_LINK_LIBRARIES_PROCESSING WRONG=REVERSE UNICITY=ALL) +set(CMAKE_C_LINK_LIBRARIES_PROCESSING WRONG=REVERSE DEDUPLICATION=ALL) add_library(lib STATIC lib.c) diff --git a/Tests/RunCMake/LinkLibrariesProcessing/InvalidConfiguration4-stderr.txt b/Tests/RunCMake/LinkLibrariesProcessing/InvalidConfiguration4-stderr.txt index 46d551304b..256fd4efb9 100644 --- a/Tests/RunCMake/LinkLibrariesProcessing/InvalidConfiguration4-stderr.txt +++ b/Tests/RunCMake/LinkLibrariesProcessing/InvalidConfiguration4-stderr.txt @@ -2,7 +2,7 @@ CMake Error at InvalidConfiguration4.cmake:[0-9]+ \(add_executable\): Erroneous option\(s\) for 'CMAKE_C_LINK_LIBRARIES_PROCESSING': WRONG=REVERSE - UNICITY=WRONG + DEDUPLICATION=WRONG Call Stack \(most recent call first\): CMakeLists.txt:[0-9]+ \(include\) diff --git a/Tests/RunCMake/LinkLibrariesProcessing/InvalidConfiguration4.cmake b/Tests/RunCMake/LinkLibrariesProcessing/InvalidConfiguration4.cmake index 9d48f4f91c..ccb4daebd0 100644 --- a/Tests/RunCMake/LinkLibrariesProcessing/InvalidConfiguration4.cmake +++ b/Tests/RunCMake/LinkLibrariesProcessing/InvalidConfiguration4.cmake @@ -1,7 +1,7 @@ enable_language(C) -set(CMAKE_C_LINK_LIBRARIES_PROCESSING WRONG=REVERSE UNICITY=WRONG) +set(CMAKE_C_LINK_LIBRARIES_PROCESSING WRONG=REVERSE DEDUPLICATION=WRONG) add_library(lib STATIC lib.c) diff --git a/Tests/RunCMake/LinkLibrariesProcessing/Invalid_UNICITY-result.txt b/Tests/RunCMake/LinkLibrariesProcessing/Invalid_DEDUPLICATION-result.txt similarity index 100% rename from Tests/RunCMake/LinkLibrariesProcessing/Invalid_UNICITY-result.txt rename to Tests/RunCMake/LinkLibrariesProcessing/Invalid_DEDUPLICATION-result.txt diff --git a/Tests/RunCMake/LinkLibrariesProcessing/Invalid_UNICITY-stderr.txt b/Tests/RunCMake/LinkLibrariesProcessing/Invalid_DEDUPLICATION-stderr.txt similarity index 60% rename from Tests/RunCMake/LinkLibrariesProcessing/Invalid_UNICITY-stderr.txt rename to Tests/RunCMake/LinkLibrariesProcessing/Invalid_DEDUPLICATION-stderr.txt index 4d759b79a3..1138a31434 100644 --- a/Tests/RunCMake/LinkLibrariesProcessing/Invalid_UNICITY-stderr.txt +++ b/Tests/RunCMake/LinkLibrariesProcessing/Invalid_DEDUPLICATION-stderr.txt @@ -1,7 +1,7 @@ -CMake Error at Invalid_UNICITY.cmake:[0-9]+ \(add_executable\): +CMake Error at Invalid_DEDUPLICATION.cmake:[0-9]+ \(add_executable\): Erroneous option\(s\) for 'CMAKE_C_LINK_LIBRARIES_PROCESSING': - UNICITY=WRONG + DEDUPLICATION=WRONG Call Stack \(most recent call first\): CMakeLists.txt:[0-9]+ \(include\) diff --git a/Tests/RunCMake/LinkLibrariesProcessing/Invalid_UNICITY.cmake b/Tests/RunCMake/LinkLibrariesProcessing/Invalid_DEDUPLICATION.cmake similarity index 62% rename from Tests/RunCMake/LinkLibrariesProcessing/Invalid_UNICITY.cmake rename to Tests/RunCMake/LinkLibrariesProcessing/Invalid_DEDUPLICATION.cmake index f423eef70f..e5ff622246 100644 --- a/Tests/RunCMake/LinkLibrariesProcessing/Invalid_UNICITY.cmake +++ b/Tests/RunCMake/LinkLibrariesProcessing/Invalid_DEDUPLICATION.cmake @@ -1,7 +1,7 @@ enable_language(C) -set(CMAKE_C_LINK_LIBRARIES_PROCESSING ORDER=REVERSE UNICITY=WRONG) +set(CMAKE_C_LINK_LIBRARIES_PROCESSING ORDER=REVERSE DEDUPLICATION=WRONG) add_library(lib STATIC lib.c) diff --git a/Tests/RunCMake/LinkLibrariesProcessing/Invalid_ORDER.cmake b/Tests/RunCMake/LinkLibrariesProcessing/Invalid_ORDER.cmake index 72a7e02057..f0c7ee366a 100644 --- a/Tests/RunCMake/LinkLibrariesProcessing/Invalid_ORDER.cmake +++ b/Tests/RunCMake/LinkLibrariesProcessing/Invalid_ORDER.cmake @@ -1,7 +1,7 @@ enable_language(C) -set(CMAKE_C_LINK_LIBRARIES_PROCESSING ORDER=WRONG UNICITY=ALL) +set(CMAKE_C_LINK_LIBRARIES_PROCESSING ORDER=WRONG DEDUPLICATION=ALL) add_library(lib STATIC lib.c) diff --git a/Tests/RunCMake/LinkLibrariesProcessing/RunCMakeTest.cmake b/Tests/RunCMake/LinkLibrariesProcessing/RunCMakeTest.cmake index 763f48b76d..d4105b482c 100644 --- a/Tests/RunCMake/LinkLibrariesProcessing/RunCMakeTest.cmake +++ b/Tests/RunCMake/LinkLibrariesProcessing/RunCMakeTest.cmake @@ -1,7 +1,7 @@ include(RunCMake) run_cmake(Invalid_ORDER) -run_cmake(Invalid_UNICITY) +run_cmake(Invalid_DEDUPLICATION) run_cmake(InvalidConfiguration1) run_cmake(InvalidConfiguration2) run_cmake(InvalidConfiguration3)