From dede273193139793d18e3e3fe800acec27140f06 Mon Sep 17 00:00:00 2001 From: Stephen Kelly Date: Thu, 17 Oct 2013 17:34:39 +0200 Subject: [PATCH] target_link_libraries: Allow repeated use of LINK_{PRIVATE,PUBLIC} keywords. This has not been allowed since they were introduced in commit 91438222 (target_link_libraries: Add LINK_(PUBLIC|PRIVATE) options, 2011-10-07), but allowing this form makes it more compatible with the newer PUBLIC and PRIVATE keywords. --- Source/cmTargetLinkLibrariesCommand.cxx | 6 ++++-- Tests/CMakeCommands/target_link_libraries/CMakeLists.txt | 6 +++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/Source/cmTargetLinkLibrariesCommand.cxx b/Source/cmTargetLinkLibrariesCommand.cxx index 22f6a0361..0707c626d 100644 --- a/Source/cmTargetLinkLibrariesCommand.cxx +++ b/Source/cmTargetLinkLibrariesCommand.cxx @@ -151,7 +151,8 @@ bool cmTargetLinkLibrariesCommand else if(args[i] == "LINK_PUBLIC") { if(i != 1 - && this->CurrentProcessingState != ProcessingPlainPrivateInterface) + && this->CurrentProcessingState != ProcessingPlainPrivateInterface + && this->CurrentProcessingState != ProcessingPlainPublicInterface) { this->Makefile->IssueMessage( cmake::FATAL_ERROR, @@ -181,7 +182,8 @@ bool cmTargetLinkLibrariesCommand else if(args[i] == "LINK_PRIVATE") { if(i != 1 - && this->CurrentProcessingState != ProcessingPlainPublicInterface) + && this->CurrentProcessingState != ProcessingPlainPublicInterface + && this->CurrentProcessingState != ProcessingPlainPrivateInterface) { this->Makefile->IssueMessage( cmake::FATAL_ERROR, diff --git a/Tests/CMakeCommands/target_link_libraries/CMakeLists.txt b/Tests/CMakeCommands/target_link_libraries/CMakeLists.txt index 06019e691..e11f980df 100644 --- a/Tests/CMakeCommands/target_link_libraries/CMakeLists.txt +++ b/Tests/CMakeCommands/target_link_libraries/CMakeLists.txt @@ -32,7 +32,7 @@ generate_export_header(depA) add_library(depB SHARED depB.cpp) generate_export_header(depB) -target_link_libraries(depB LINK_PRIVATE depA) +target_link_libraries(depB LINK_PRIVATE depA LINK_PRIVATE depA) add_library(libgenex SHARED libgenex.cpp) generate_export_header(libgenex) @@ -44,11 +44,11 @@ set_property(TARGET depB APPEND PROPERTY add_library(depC SHARED depC.cpp) generate_export_header(depC) -target_link_libraries(depC LINK_PUBLIC depA) +target_link_libraries(depC LINK_PUBLIC depA LINK_PUBLIC depA) assert_property(depA LINK_INTERFACE_LIBRARIES "") assert_property(depB LINK_INTERFACE_LIBRARIES "") -assert_property(depC LINK_INTERFACE_LIBRARIES "depA") +assert_property(depC LINK_INTERFACE_LIBRARIES "depA;depA") add_executable(targetA targetA.cpp)