CMake: IMPORTED_SONAME не влияет на импортируемую библиотеку в macOS

#macos #cmake

Вопрос:

Я импортирую внешнюю динамическую библиотеку в свой проект CMake. Библиотека содержит следующее содержимое в LC_ID_DYLIB поле:

 libftd2xx.dylib  

У него нет никакого набора rpath. Поэтому я импортирую библиотеку следующим образом:

 add_library(LibFTd2xx::LibFTD2xx SHARED IMPORTED GLOBAL) set_target_properties(LibFTD2xx::LibFTD2xx  PROPERTIES IMPORTED_SONAME "@rpath/libftd2xx.dylib" )  

Я ожидал увидеть @rpath/libftd2xx.dylib в поле каждого зависимого исполняемого LC_LOAD_DYLIB файла, но, к сожалению, я все еще вижу:

 LC 15: LC_LOAD_DYLIB libftd2xx.dylib  

Запуск исполняемого файла, конечно, завершается неудачей. Все остальные библиотеки в проекте имеют соответствующие пути rpath. Как я могу заставить CMake использовать IMPORTED_SONAME во всех зависимых библиотеках и исполняемых файлах вместо значения из LC_ID_DYLIB ?

К сожалению, я не могу изменить LC_ID_DYLIB , потому что библиотека подписана Apple, и изменение идентификатора уничтожает подпись.