From 5617c34c3135f7ec203d5a48b803eb323f458bc3 Mon Sep 17 00:00:00 2001 From: Marc Chevrier Date: Sun, 16 Jun 2024 15:37:37 +0200 Subject: 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 +- .../Invalid_DEDUPLICATION-result.txt | 1 + .../Invalid_DEDUPLICATION-stderr.txt | 7 +++++++ .../Invalid_DEDUPLICATION.cmake | 9 +++++++++ .../LinkLibrariesProcessing/Invalid_ORDER.cmake | 2 +- .../Invalid_UNICITY-result.txt | 1 - .../Invalid_UNICITY-stderr.txt | 7 ------- .../LinkLibrariesProcessing/Invalid_UNICITY.cmake | 9 --------- .../LinkLibrariesProcessing/RunCMakeTest.cmake | 2 +- 19 files changed, 42 insertions(+), 39 deletions(-) create mode 100644 Tests/RunCMake/LinkLibrariesProcessing/Invalid_DEDUPLICATION-result.txt create mode 100644 Tests/RunCMake/LinkLibrariesProcessing/Invalid_DEDUPLICATION-stderr.txt create mode 100644 Tests/RunCMake/LinkLibrariesProcessing/Invalid_DEDUPLICATION.cmake delete mode 100644 Tests/RunCMake/LinkLibrariesProcessing/Invalid_UNICITY-result.txt delete mode 100644 Tests/RunCMake/LinkLibrariesProcessing/Invalid_UNICITY-stderr.txt delete mode 100644 Tests/RunCMake/LinkLibrariesProcessing/Invalid_UNICITY.cmake diff --git a/Modules/Platform/AIX-GNU.cmake b/Modules/Platform/AIX-GNU.cmake index 55a6680..f6616fb 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 c225de9..cd202cb 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 31f4293..e0b6cd6 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 35055bc..8c9b79c 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 c737b88..3a400e5 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 cc323f4..2f24ad7 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 e79eb45..ac5f7f1 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 c9da734..63edfd3 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 a1311fe..0bd7c5f 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 46d5513..256fd4e 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 9d48f4f..ccb4dae 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_DEDUPLICATION-result.txt b/Tests/RunCMake/LinkLibrariesProcessing/Invalid_DEDUPLICATION-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/LinkLibrariesProcessing/Invalid_DEDUPLICATION-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/LinkLibrariesProcessing/Invalid_DEDUPLICATION-stderr.txt b/Tests/RunCMake/LinkLibrariesProcessing/Invalid_DEDUPLICATION-stderr.txt new file mode 100644 index 0000000..1138a31 --- /dev/null +++ b/Tests/RunCMake/LinkLibrariesProcessing/Invalid_DEDUPLICATION-stderr.txt @@ -0,0 +1,7 @@ +CMake Error at Invalid_DEDUPLICATION.cmake:[0-9]+ \(add_executable\): + Erroneous option\(s\) for 'CMAKE_C_LINK_LIBRARIES_PROCESSING': + + DEDUPLICATION=WRONG + +Call Stack \(most recent call first\): + CMakeLists.txt:[0-9]+ \(include\) diff --git a/Tests/RunCMake/LinkLibrariesProcessing/Invalid_DEDUPLICATION.cmake b/Tests/RunCMake/LinkLibrariesProcessing/Invalid_DEDUPLICATION.cmake new file mode 100644 index 0000000..e5ff622 --- /dev/null +++ b/Tests/RunCMake/LinkLibrariesProcessing/Invalid_DEDUPLICATION.cmake @@ -0,0 +1,9 @@ + +enable_language(C) + +set(CMAKE_C_LINK_LIBRARIES_PROCESSING ORDER=REVERSE DEDUPLICATION=WRONG) + +add_library(lib STATIC lib.c) + +add_executable(main main.c) +target_link_libraries(main PRIVATE lib) diff --git a/Tests/RunCMake/LinkLibrariesProcessing/Invalid_ORDER.cmake b/Tests/RunCMake/LinkLibrariesProcessing/Invalid_ORDER.cmake index 72a7e02..f0c7ee3 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/Invalid_UNICITY-result.txt b/Tests/RunCMake/LinkLibrariesProcessing/Invalid_UNICITY-result.txt deleted file mode 100644 index d00491f..0000000 --- a/Tests/RunCMake/LinkLibrariesProcessing/Invalid_UNICITY-result.txt +++ /dev/null @@ -1 +0,0 @@ -1 diff --git a/Tests/RunCMake/LinkLibrariesProcessing/Invalid_UNICITY-stderr.txt b/Tests/RunCMake/LinkLibrariesProcessing/Invalid_UNICITY-stderr.txt deleted file mode 100644 index 4d759b7..0000000 --- a/Tests/RunCMake/LinkLibrariesProcessing/Invalid_UNICITY-stderr.txt +++ /dev/null @@ -1,7 +0,0 @@ -CMake Error at Invalid_UNICITY.cmake:[0-9]+ \(add_executable\): - Erroneous option\(s\) for 'CMAKE_C_LINK_LIBRARIES_PROCESSING': - - UNICITY=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_UNICITY.cmake deleted file mode 100644 index f423eef..0000000 --- a/Tests/RunCMake/LinkLibrariesProcessing/Invalid_UNICITY.cmake +++ /dev/null @@ -1,9 +0,0 @@ - -enable_language(C) - -set(CMAKE_C_LINK_LIBRARIES_PROCESSING ORDER=REVERSE UNICITY=WRONG) - -add_library(lib STATIC lib.c) - -add_executable(main main.c) -target_link_libraries(main PRIVATE lib) diff --git a/Tests/RunCMake/LinkLibrariesProcessing/RunCMakeTest.cmake b/Tests/RunCMake/LinkLibrariesProcessing/RunCMakeTest.cmake index 763f48b..d4105b4 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) -- cgit v0.12