CMake: Protects against double find_package
Boost iostream uses `find_package` in quiet mode and then again uses `find_package` with required. This second call triggers a `add_library cannot create imported target "LibLZMA::LibLZMA" because another target with the same name already exists.` This can simply be fixed by skipping the alias part on secondary `find_package` runs.
This commit is contained in:
parent
12ea1fb297
commit
d04eb78ab3
|
@ -889,13 +889,15 @@ write_basic_package_version_file(
|
|||
set(LZMA_CONFIG_CONTENTS
|
||||
"include(\"\${CMAKE_CURRENT_LIST_DIR}/liblzma-targets.cmake\")
|
||||
|
||||
# Be compatible with the spelling used by the FindLibLZMA module. This
|
||||
# doesn't use ALIAS because it would make CMake resolve LibLZMA::LibLZMA
|
||||
# to liblzma::liblzma instead of keeping the original spelling. Keeping
|
||||
# the original spelling is important for good FindLibLZMA compatibility.
|
||||
add_library(LibLZMA::LibLZMA INTERFACE IMPORTED)
|
||||
set_target_properties(LibLZMA::LibLZMA PROPERTIES
|
||||
INTERFACE_LINK_LIBRARIES liblzma::liblzma)
|
||||
if(NOT TARGET LibLZMA::LibLZMA)
|
||||
# Be compatible with the spelling used by the FindLibLZMA module. This
|
||||
# doesn't use ALIAS because it would make CMake resolve LibLZMA::LibLZMA
|
||||
# to liblzma::liblzma instead of keeping the original spelling. Keeping
|
||||
# the original spelling is important for good FindLibLZMA compatibility.
|
||||
add_library(LibLZMA::LibLZMA INTERFACE IMPORTED)
|
||||
set_target_properties(LibLZMA::LibLZMA PROPERTIES
|
||||
INTERFACE_LINK_LIBRARIES liblzma::liblzma)
|
||||
endif()
|
||||
")
|
||||
|
||||
if(ENABLE_THREADS STREQUAL "posix")
|
||||
|
|
Loading…
Reference in New Issue