Поддержка повышения в CMAKE, по-видимому, ограничена поиском только одного варианта библиотеки с USE_MULTITHREADED ON или OFF.
Мои требования состоят в том, чтобы предоставить две общие библиотеки: одну, связанную с однопоточными статическими библиотеками Boost, а другую, связанную с многопоточными статическими библиотеками Boost.
Исходная база для моих двух библиотек распространена на 99%, с многопоточным кодом #defined inline.
Я не нашел модель cmake для этого, которая является общепринятой, и ищу предложения.
Я пробовал различные заклинания "find_package (Boost ...)" до или после добавления библиотеки. Текущее решение состоит в том, чтобы find_package идентифицировал повышающие библиотеки MT, а затем в специальном случае библиотеки ST для моей цели ST, которые имеют жестко запрограммированные / созданные вручную пути для каждой из необходимых библиотек, например
target_include_directories(stspisampledisk PRIVATE ${Boost_INCLUDE_DIRS})
target_link_options(stspisampledisk PRIVATE ../third_party/boost/ST/lib/libboost_serialization.a
../third_party/boost/ST/lib/libboost_filesystem.a
../third_party/boost/ST/lib/libboost_date_time.a)
Ссылка MT, очевидно, намного чище:
target_link_libraries(stspisamplediskMT PRIVATE Boost::filesystem Boost::serialization Boost::date_time Threads::Threads)