if(CMAKE_CONFIGURATION_TYPES)
set_property(TARGET Boost::iostreams APPEND PROPERTY INTERFACE_LINK_LIBRARIES
"$<$<CONFIG:release>:bz2;lzma;z;zstd>")
else()
set_property(TARGET Boost::iostreams APPEND PROPERTY INTERFACE_LINK_LIBRARIES
bz2 lzma z zstd)
endif()
This is not going to work if I just link to Boost::iostreams. How should a consumer know that those libraries are needed?
If I am not mistaken, In modern CMake you would call find_dependencies(ZSTD::ZSTD $Version) and then link to the imported target in your exported CMake file.
This gets especially tricky with boost::regex and ICU, where I don't even know which version I should find in my own CMake script that is "finding" boost.